• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:php+MySQLでレコード追加が反映されません。)

PHP+MySQLでレコード追加が反映されません

このQ&Aのポイント
  • phpとMySQLで新規レコードを登録するページを作成していますが、レコードが追加されません。
  • データベースへの接続とフォームのデータ受け渡しは成功しており、他のページでは問題なくレコードが追加されています。
  • INSERT文の書き方が間違っているのか、どなたかお知恵をいただけないでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

// クエリを送信する $sql = "INSERT INTO tablename (AAA, BBB, CCC, DDD, EEE, FFF, GGG, HHH, III, JJJ, KKK, LLL, MMM, NNN, OOO, PPP, QQQ) VALUES (`'$_POST[aaa]','$_POST[bbb]','$_POST[ccc]','$_POST[ddd]','$_POST[eee]','$_POST[fff]','$_POST[ggg]','$_POST[hhh]','$_POST[iii]','$_POST[jjj]','$_POST[kkk]','$_POST[lll]','$_POST[mmm]','$_POST[nnn]','$_POST[ooo]','$_POST[ppp]','$_POST[qqq]')"; これだけでは送信できてません。 mysql_query($sql, $link); これでクエリ送信です。 ちなみにこのmysql_queryですが、クエリが失敗した場合はFALSEを返えします。 それとこのクエリの前に接続閉じてたら送信できませんから、すべてのクエリの後で切断してください。 ちなみに基本的には、phpファイルの実行後にDBは勝手に切断されて、メモリも開放される仕様なので、 明示的に切断する必要がない場合は切断やメモリの開放まで書く必要は薄いです。 直前のmysqlエラーについては、 echo mysql_error($link); で確認できます。 また、この$linkの部分、接続リンクについても、 mysql系関数については引数がない場合は、直前の接続リンクがデフォルトで入る仕様になってますので、 今回の場合は省略して構いません。

makura1989
質問者

お礼

回答ありがとうございます。 クエリを送信する前に接続を閉じていたことと、 mysql_query($sql, $link); を書かなかったことが原因だったようです。 アドバイスを頂いた通りに直していったところ、レコード追加ができるようになりました。 ありがとうございます。

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

>VALUES (`'$_POST[aaa]' のバッククォートは転記ミス? こまかいところを見直してみるとtypoがあるのでは? ちなみにPOSTデータをそのままSQLにつなげるのはNG 本番ではかならずエスケープ処理をいれてください

makura1989
質問者

お礼

回答ありがとうございます。 転記ミスですお恥ずかしい・・・ typoは色々検証したのですが、無いようでした。 エスケープ処理、完全に忘れていました。 ありがとうございます。

関連するQ&A

専門家に質問してみよう