• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:テーブルにINSERTができません(MySQL))

テーブルにINSERTができません(MySQL)

このQ&Aのポイント
  • 独学でPHP,MySQLを勉強中です。とあるトレーディングカードの出品サイトを作成中ですがデータのINSERTがうまくいきません。
  • 経験も浅いので何か大きく基本をはずしているような気がしています。どなたかご教授ください。
  • 登録完了ページが表示されると、MySQL Command Line Clientでselect * from regist_test;としてもEmpty setとでてしまいます。

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

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

いまだにmysql_query()を前提としているのはどうかと思いますが とりあえずはロジックを追いかけてるだけだとして・・・ mysql_query(・・・) or die(mysql_error()); というデバッグでエラーが発生しているようなら確認できます。 またmysql_query()でクエリを投げる前にprintでクエリ自体を表示させると sql文のエラーチェックもできます

buttero
質問者

お礼

Insertできるようになりました! or die(mysql_error()); を追加してエラーを表示させたところ、Data too long for column 'CID0' と表示され、ためしにCIDをvarchar(10)にしたら”Array[0]”とInsertされていました。二次元配列の情報を一旦別の変数$CID0に置き換えてそこをvaluesで指定してやったらちゃんとテーブルにInsertできました。 あまりスマートでない気がしますが、二次元配列の情報を一旦全て別の変数に置き換えて指定しようと思います。ありがとうございました。 「いまだにmysql_query()を前提としているのはどうかと思いますが」のところは私の未知の領域なのでしっかり勉強しようとおもいます。数年前にプログラミングの学校で教わったんですが、古いみたいですね。

その他の回答 (1)

  • bm_hiro
  • ベストアンサー率51% (200/388)
回答No.2

とりあえず、アドバイスだけ。 insertの時も mysql_queryの戻り値 取っておいた方がいいですよ。 あと mysql_queryは PHP5.5から非推奨らしいので mysqliとか PDO使ってねー。って事らしい。 んで、insert されていないのだから、その部分が正常に行われていないのは確実です。 その insert文をechoしてみて、MySQL Command Line Clientに投げるとどうなるか確認してみてください。

buttero
質問者

お礼

戻り値の件、ありがとう御座います。こちらも数年前にプログラミングの学校で教わった書き方をそのまま真似たものなので、戻り値についても勉強します。あと、mysqli、PDOという言葉も始めてみましたので、よく調べてみようと思います。ありがとうございました。

関連するQ&A