【PHP】下らねぇ質問はここに書き込みやがれ 8 [無断転載禁止]©2ch.net

レス数が1000を超えています。これ以上書き込みはできません。
2017/03/15(水) 00:41:22.79ID:ko4BTSP20
PHPに関する下らない質問用避難スレです。
まず読むこと【PHPマニュアル】
http://www.php.net/manual/ja/

前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 7
http://echo.2ch.net/test/read.cgi/tech/1478657006/

次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

次スレを立てる時は本文の1行目に以下を追加して下さい
!extend:on:vvvvv:1000:512
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
2017/11/25(土) 00:07:20.86ID:SR+igXjo0
>>962
残念だけどちゃんと調べたらソースごとバンドルされてるから静的ビルドよ
https://github.com/php/php-src/tree/master/ext/sqlite3/libsqlite
2017/11/25(土) 00:11:53.87ID:SR+igXjo0
静的ビルドじゃねぇな, リンクでもないし静的に組み込まれてる
2017/11/25(土) 00:49:57.60ID:hdwDPoQO0
>>964
違うぞ。てかお前動的リンクと静的リンクの違い分かってないだろ。
ソースがそこにある=パッケージ内でビルドされている、であって、動的/静的は関係ない。
自分でDLLを作るとき、プロジェクト内にソースは当然あるだろ。


こっちも調べた。DLLを直接確認したらget_module関数が無い。それでググったら以下が出た。
http://www.php-cpp.com/documentation/loading-extensions

要するに通常のDLLでは無く、Zendのラッパ(ではないが)が必要で、そこからアドオンとして組み込んでる。
だからphp.iniを見て動的に組み込む。
FireFoxとかのプラグインと同じ構造(のはず)

Zendからヘッダを入手してビルドするのは面倒なので、
誰か既にビルド済みなのを探しているのだが(これがwindowsの利点だし)、今のところない。
誰か発見したらよろしく。
なおReleaseNoteを見る限り、ATTACH自体はまだ枯れてないので可能性がある。
> 2. Allow ATTACH and DETACH commands to work inside of a transaction.
> http://www.sqlite.org/releaselog/3_21_0.html
ただまあそれ以前に、ATTACHの仕方によっては遅くならないようなので、それも確認中。
2017/11/25(土) 01:43:46.47ID:hdwDPoQO0
ちなみにバイナリはあった。
http://windows.php.net/qa/

そしてPHP7.1.12RC1のdllと差し替えたら反応はするのだがSQLite自体は3.15.1のまま。
おそらくPHP7.1系はSQLite3.15.1なのだろう。

ならばとPHP7.2.0RC6も試したが、
こちらはVC15のランタイムをインストールした際「再起動が必要」と出たが無視しているので結果は未定。
再起動無しの状態では使えない。(読みに行くがリンクできない関数があって落ちる)
2017/11/25(土) 02:08:17.99ID:SR+igXjo0
理解してないのはお前だよ

php_sqlite3.dllやphp_pdo_sqlite.dllは実行時にPHPにロードされるいわゆるモジュールだが, こいつらとsqlite3.dllは同一じゃない
sqlite3.cのソースコードを使ってSQLiteはこれらのモジュールに「静的に」組み込まれている

sqlite3.dllならPHPから独立だろうがphp_sqlite3.dllはphp7ts.dllに依存しているからその辺で読めないんじゃないの
ちゃんとエラーログ見ればモジュール読めないってPHP Startup Error出てるだろうよ
2017/11/25(土) 08:23:48.80ID:hdwDPoQO0
>>967
> 実行時にPHPにロードされる
> 「静的に」
馬鹿乙。つかマジでもうちょっとちゃんと勉強しろ。
PHPerは馬鹿だとは聞いたが、なるほどこれでは馬鹿にされるだろうさ。
2017/11/25(土) 12:15:37.58ID:hVOq/yrX0
どっちにせよ、こんなことで時間潰れるの勿体ない
最初からVirtualBoxとかでやった方がいいと思うな
2017/11/25(土) 12:39:50.58ID:hdwDPoQO0
>>969
いや、virtualBoxの方がいいのか?
Unixにポーティングしたらそこで問題がー、って人も居るみたいだけど。
http://torhamzedd.halteria.com/2010/02/xamppwebvmplayer.html
まあ言っていることはごもっともなんだが。xamppで実運用する可能性は皆無だし。

なおいろいろ試した結果、ATTACHの問題というよりは特性であり、
こちらのプログラムで改善/回避できそうな雰囲気なので、環境が悪いわけではなさそうだ。
まだ詳細を詰め切れていないが。
2017/11/25(土) 14:36:44.48ID:hdwDPoQO0
なおATTACHについては自己解決した。詳細は以下参照。
http://mevius.2ch.net/test/read.cgi/db/1345121656/647

これだと最新版で改善されている可能性もあり、試すべきだが、
再起動するのはかなり面倒なのでとりあえず放置する。(後日結果を報告するかも)
対応してくれた人はありがとう。
2017/11/27(月) 12:53:10.05ID:nNid/MSoM
用途をみるに、sqliteを最新にする必要があるのか謎。
2017/11/27(月) 12:54:20.73ID:nNid/MSoM
あー最新版の修正目当てか。失礼
2017/11/27(月) 17:21:44.79ID:hfMnpxmx0
>>968
痛々しいわ

SQLite関数を使う上での依存関係は

PHPコア -> php_sqlite3モジュール -> SQLite3ライブラリ

なんだから,

PHPコア -> php_sqlite3モジュール : 実行時にphp.iniの設定を見てロード
php_sqlite3モジュール -> SQLite3ライブラリ : php_sqlite3モジュールのビルド時に静的に組み込み

で何も矛盾してない
最初から最後までSQLite3ライブラリの最新版を使いたいなら「php_sqlite3モジュールを新しいSQLite3ライブラリを使って再ビルドしろ」が結論
2017/11/27(月) 19:07:02.53ID:pbeBNwkp0
>>973
3.21.0で追加された、transaction内でのATTACH/DETACHがあれば、
http://mevius.2ch.net/test/read.cgi/db/1345121656/663
に書いたtempの手法が使えるようになる。
ただ、今は、それ以前に、file_put_contentsでarchive用のjsonファイルを静的に作成する方法を試している。
速度は10倍ほど出ている。(DBに書くと40-60msかかるが、ファイルなら3-4ms)

今は本当にこれでいけるか、こちらに一本化すべきかを考えているところ。
(archiveは動的側面が全くないはずなのでいけるはずだが、運用上問題がないか?)


>>974
> 痛々しいわ
お前がな。最近この手の馬鹿は増えたが。
まあ永久に無知なままでいろ。
2017/11/27(月) 21:04:12.30ID:hfMnpxmx0
>>975
誤解してるわけでもなさそうだしまぁいいや
実際ビルドし直さずに最新版使えるならそれがベストではあるしな
是非成功させて勉強させてくれ
977デフォルトの名無しさん (ワッチョイ 6323-nSRQ)
垢版 |
2017/12/14(木) 18:31:35.65ID:O42iwrkx0
php pdo mysql について質問です。
ローカルのxampp環境でinsert時にexceptionを吐いているのですが、サーバーのlinux環境ではexceptionを吐きません。

接続直後に
setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
としているのですが、環境によってexceptionをthrowしない場合ってあるのでしょうか?

この問題は非常に質が悪く、$stmt->errorCode();で取得できませんし、$stmt->rowCount();で1が返ってきてしまいます。
エラーログには出力されているようです。

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'hogehoge' in ...

どうやったらexceptionをthrowしてくれるようにできるのでしょうか?
また、throwは諦める場合、エラーを検出したいのですがどうやったら良いでしょうか?
978デフォルトの名無しさん (ワッチョイ 6323-nSRQ)
垢版 |
2017/12/14(木) 18:54:42.13ID:O42iwrkx0
なんか分かった気がします。
prepare? execute? がエラーを throw していたのですが、
それらをコールしている関数の外で try catch していたので、そこまで到達していなかったようです。
php.ini の設定なんですかね?
とりあえず自己解決しました。
ありがとうございました。
2017/12/14(木) 21:55:30.52ID:c3uOfk7qM
解決したからいいけど、XAMPP環境での開発はお勧めできん
WindowsでもMacでもDocker使うなり仮想つかうなりで、
本番環境とほぼ同じ状態で開発しないと
PHPのバージョンや組み込まれてるライブラリ、php.iniもすべて合わせれば
そんなエラーで時間潰すこともまずなかろう
980デフォルトの名無しさん (オイコラミネオ MMb3-35vn)
垢版 |
2017/12/14(木) 23:08:01.53ID:kcFY4zVmM
phpのフレームワークにララベル使おうかと思ってるんだけど、なんか他に良いフレームワークってあるの?
2017/12/15(金) 00:18:58.55ID:zZ0+kx4X0
個人的にはLaravelが一番いいと思うよ
FuelPHPとかPhalconとか最近はあまり聞かなくなったな
982デフォルトの名無しさん (ワッチョイ 53c9-BImy)
垢版 |
2017/12/17(日) 12:52:10.72ID:hlhRQlj10
>>979

XAMPP全く関係ないじゃん。ヴァカなの?
2017/12/19(火) 01:55:46.54ID:lVjWNMP2a
WindowsのファイルシステムのエンコードはUTF-16 らしいですが
scandirで取得したファイル名はUTF-8になっています
これはPHPが内部で変換してるのでしょうか?
2017/12/19(火) 10:43:30.09ID:lVjWNMP2a
Win10のコマンドラインからPHPを実行してUTF-8の文字列を表示すると
文字化けせずに表示されました
Win7以前はSJISに変換してから表示しないと化けたはずです
Win10のコマンドラインのエンコードはUTF-8になったのでしょうか?
だとすれば、コマンドライン=SJIS、を前提にして書かれたコードは
問題が出てきますよね
現に出ているから調べ始めたのですが・・
2017/12/19(火) 12:01:10.63ID:lVjWNMP2a
バッチファイルからUTF-8文字列を出力するとやはり化けたので
WindowsではなくPHP側の問題かと思って検索したらありました

Windows版 PHP 7.1 で日本語パス(パス文字列のエンコーディング)が
対応されることによる影響
https://qiita.com/algo13/items/2810aacef69d6fb8fd0f
2017/12/19(火) 12:43:11.61ID:o48rTZ2B0
windows10が今手元にないからうまく答えれないけど、
コマンドラインでchcpってうってみて文字コード確認してみればいいんじゃない?
2017/12/19(火) 13:15:06.92ID:1yPg30uza
ありがとうございます
しっかり932って表示されました
2017/12/20(水) 09:16:36.60ID:+UrT0jgrM
>>982
はあ? あるじゃん
本番環境と開発環境の構成がずれててエラー起きてるんだから
2017/12/20(水) 13:31:42.83ID:Wkwa3Cn2a
自分もXAMPPを使っているのですが
MySQLのデフォルトがInnoDBになっていたのでそのまま使っていたのですが、
データベースが壊れました
innodb_force_recoveryオプションを使って修復してもまたすぐ壊れます
MyISAMの時はmyisamchkにかければそれで直っていたのに。
InnoDBは同時アクセス対策の機能が豊富ですが
同時アクセスがさほど想定されない場合は
シンプルで堅牢なMyISAMを使うべきなのでしょうか?
2017/12/20(水) 13:38:21.86ID:xHqi669x0
>さほど想定されない

dbの形式以前に、ロックをしない構文構造に問題があるのでは?
2017/12/20(水) 13:45:16.71ID:Wkwa3Cn2a
ロックですか
していませんでした
MyISAMの時と同じ書き方をしていました
InnoDBではそういうのがいるんですね
ありがとうございます
2017/12/20(水) 14:51:09.36ID:Xzv3JYGc0
InnoDBが壊れるってそうそう起きないだろ
ロック云々の人為的ミスで壊れるなんて今はまずないと思うけど
そのXAMPPのMySQLのバージョンいくつか知らんが、
5.1とか使ってるなら5.7に上げるのがいいと思うが
MyISAMにするってのはかなりズレてると思うよ
2017/12/20(水) 15:34:56.61ID:8R4SVzVb0
>>3の修正案

関連リンク
■PHPマニュアル    http://www.php.net/manual/ja/
■日本PHPユーザ会  http://www.php.gr.jp/
■PHPNG        https://wiki.php.net/phpng
■メーリングリスト   http://ml.php.gr.jp/mailman/listinfo/

(以下英語)
■公式リポジトリ http://git.php.net/
■PHP-RFC https://wiki.php.net/rfc
■PECL http://pecl.php.net/
■Composer https://getcomposer.org/
■Packagist https://packagist.org/
■Zend Tech. Ltd. http://www.zend.com/

フレームワーク(一部)
■Zend Framework  https://framework.zend.com/
■Symfony   https://symfony.com/
■Laravel https://laravel.com/
■CodeIgniter https://codeigniter.com/
■Yii http://www.yiiframework.com/
■FuelPHP https://fuelphp.com/
■CakePHP https://cakephp.org/

テンプレートエンジン(一部)
■Twig https://twig.symfony.com/
■Blade https://laravel.com/docs/5.1/blade
2017/12/20(水) 15:38:27.23ID:8R4SVzVb0
>>993 >>3
スペース直した

関連リンク
■PHPマニュアル    http://www.php.net/manual/ja/
■日本PHPユーザ会  http://www.php.gr.jp/
■PHPNG        https://wiki.php.net/phpng
■メーリングリスト   http://ml.php.gr.jp/mailman/listinfo/

(以下英語)
■公式リポジトリ     http://git.php.net/
■PHP-RFC       https://wiki.php.net/rfc
■PECL          http://pecl.php.net/
■Composer       https://getcomposer.org/
■Packagist        https://packagist.org/
■Zend Tech. Ltd.    http://www.zend.com/

フレームワーク(一部)
■Zend Framework   https://framework.zend.com/
■Symfony        https://symfony.com/
■Laravel         https://laravel.com/
■CodeIgniter       https://codeigniter.com/
■Yii            http://www.yiiframework.com/
■FuelPHP        https://fuelphp.com/
■CakePHP        https://cakephp.org/

テンプレートエンジン(一部)
■Twig           https://twig.symfony.com/
■Blade          https://laravel.com/docs/5.1/blade
2017/12/20(水) 18:37:45.96ID:Ahhn3Ak50
次スレ
【PHP】下らねぇ質問はここに 9
https://mevius.5ch.net/test/read.cgi/tech/1513760420/
2017/12/20(水) 18:38:40.73ID:Ahhn3Ak50
996
2017/12/20(水) 18:39:17.00ID:Ahhn3Ak50
997
2017/12/20(水) 18:39:47.24ID:Ahhn3Ak50
998
2017/12/20(水) 18:40:27.20ID:Ahhn3Ak50
999
2017/12/20(水) 18:40:55.62ID:Ahhn3Ak50
1000
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 280日 17時間 59分 33秒
レス数が1000を超えています。これ以上書き込みはできません。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況