PHPでのMYSQLクエリ実行失敗について
PHPでMYSQLに対し、mysqli_query関数でINSERT文を実行していますが、挿入されず困っています。
対処方法、あるいは調査の方向性について教えていただけないでしょうか?
発生している問題・エラーメッセージ
PHP7.2でWEBアプリケーションを作っており、mysqli_query関数でINSERT文を実行していますが、DBへ挿入されません。
関数の戻り値はvar_dump()で確認したところ、NULLとなっていました。
通常、mysqli_query関数はTRUE or FALSEだと思っていましたので、理由が分からず困っています。
なお、サーバ上では上記事象が発生していますが、ローカル上では同じPHPファイルで実行しても問題なく挿入されます。
NULLなのでmysqli_connect等で失敗しているのかなとも思いますが...調査が行き詰まっていてお手上げの状態です。
サーバのログには、この挿入後に対象のレコードを取得するユーザ関数で、引数NULLで失敗しているログは出ていますが、それ以外には関係するログは出力されていません。
サーバのOSはCentOS7.4、WebサーバはApache/2.4.6。
サーバ上のMYSQLは5.7.21です。
ローカルはMacでMAMPで動かし、MYSQLは5.6.38です。
※意味があるか分かりませんが、ローカルのMYSQLのバージョンを合わせてみようとしているところです。
該当のソースコード
※趣味で書いているため、一般的でない記述の仕方をしてるかもしれませんが、ご容赦ください。
PHP7.2
1/** 2 * databaseConnect.php 3 */ 4$link = mysqli_connect('localhost','(ユーザ名)','(パスワードがここに入る)','(DB名)'); 5mysqli_set_charset($link, 'utf8'); 6 7/** 8 * registMember.php 9 */ 10 11// DB接続情報取得 12include 'tools/databaseConnect.php'; 13 14// メンバー情報の登録 15$query = 16 "INSERT INTO usertable ( 17 loginID, loginPassword, name, adddate, updatedate, isAdmin, 18 question, answer, defTax, payNameFlg, payCateFlg, paymentFlg, payMemoFlg, 19 taxCalcFlg, incNameFlg, incCateFlg, incMemoFlg 20 ) 21 VALUES ( 22 '$loginID', '$password', '$name', '$registDate', '$registDate', $isAdmin, 23 '$question', '$answer', '$defTax', '$payNameFlg', '$payCateFlg', '$paymentFlg', '$payMemoFlg', 24 '$taxCalcFlg', '$incNameFlg', '$incCateFlg', '$incMemoFlg' 25 )"; 26$queryResult = mysqli_query($link, $query); 27$this->result = mysqli_fetch_assoc($queryResult); 28 29$test = mysqli_error($link); 30var_dump($test); 31 32var_dump($query); 33var_dump($queryTest); 34var_dump($this->result);
試したこと
上記のregistMember.phpをnewでオブジェクト化し、ユーザ定義関数を呼び出して実行しています。
なお、var_dumpの出力結果は下記の通りです。
※変数の数値は適当です。
NULL
string(581) "INSERT INTO usertable ( loginID, loginPassword, name, addDate, updateDate, isAdmin, question, answer, defTax, payNameFlg, payCateFlg, paymentFlg, payMemoFlg, taxCalcFlg, incNameFlg, incCateFlg, incMemoFlg ) VALUES ( 'ando0213', '(パスワード)', '安藤 つばき', '2018-02-12 12:50:21', null, '0', 'SHIROBAKO?', 'ぷるんぷるん天国', '8', '1', '0', '0', '0', '0', '1', '0', '0' )"
NULL
NULL
※なおサーバ上のMYSQLクライアント上でクエリを実行したところ、問題なく挿入されました。
そもそも接続に失敗してるようなので、DBのテーブル定義は省略します。
必要であればコメントください。
恐縮ですが、ご協力お願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。