• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:phpからinsertできない)

PHPからMySQLへデータをインサートできない

このQ&Aのポイント
  • PHPからMySQLへデータをインサートする方法を試しているがうまくいかない。
  • ソースコードを確認してもらえるか。
  • データの受け渡しは問題ないが、データのインサートができない。

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

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

$result = mysql_query($sql) or die(mysql_error()); としてデバッグしてみるといいですよ。 ×$sql = 'INSERT INTO `tab1` (`abc`, `def`, `ghi`) VALUES (`$data1`,`$data2`,`$data3`);'; ○$sql = "INSERT INTO `tab1` (`abc`, `def`, `ghi`) VALUES ('$data1','$data2','$data3')"; 単純に、valuesの中で渡すデータはバッククォーテーションではなく シングルクォーテーションです。フィールド名ではなくデータを わたしたいのですから・・・。 $sql変数に代入する場合のくくりはダブルクォーテーションですね。 (変数を参照するため) それと念のため、sqlのケツのセミコロンは取っておいた方がよいです。

noname#69143
質問者

お礼

環境も書かない(書き忘れた)失礼な質問に親切なお礼、ありがとうございます。 無事上手くいきました。 ただ >それと念のため、sqlのケツのセミコロンは取っておいた方がよいです。 このケツのセミコロンはないとエラーになってしまいました。 付けてあって正解のようです。 ところでこのような質問はMySQL側でよろしいのでしょうか? PHP側で質問するべきでしょうか? この回答だけ頂いたら回答を締め切らせていただこうと思います。

その他の回答 (1)

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

うーん、どっちなんでしょうね・・・ ま、マルチポストさえしなければどっちでもいいんじゃないですか? 私は両方ともこまめに見てますので、どちらでも フォローできると思いますよ。 >ケツのセミコロン 説明不足ですみませんが、ケツのセミコロンとはSQL分のセミコロン のことを言いたかったのです。 場合によってはこれをつけるとエラーになることがあります。 もちろんほんとのケツのセミコロンはPHPの文法上の区切り文字 なので必須です。

noname#69143
質問者

お礼

セミコロン、また私が勘違いしていたようですね。 理解できました、ありがとうございます。 マルチポストは確かにまずいですね。 今後も一連の質問は、とりあえずこちらのほうにさせていただこうと思います。 非常に簡単なものですが、なんとか作成しているデータベースも型になってきました。 同時にMySQLとPHPも少し分かってきたような気がします。 今後もぜひご指導お願いします。

関連するQ&A