こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

データが追加されません

mysql2.23 + PHPのプログラムで
あらかじめ次のようなテーブルを作っています。
CREATE TABLE metadata(id smallint unsigned not null auto_increment primary key, me_date datetime, me_info text, me_file varchar (50));
次にPHPで
$meta_server = "metadata";
$conn = mysql_connect("localhost","root","root");
とここまでは大丈夫なのですが、その後
$sql = "INSERT INTO metadata(me_date, me_info, me_file) VALUES(
'".substr$table',
'".$note."',
'".$filename."');";
$db = mysql_db_query($meta_server,$sql);
としてもデータがテーブルに入りません。
どこに問題があるのでしょうか?
誰かヒントをお願いします。

投稿日時 - 2003-08-14 10:27:38

QNo.627441

すぐに回答ほしいです

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

$sqlのコーテーションの対応関係が崩れてしまってるように見受けられます。

前後のプログラムがどのようになっているのかわかりませんので、ichirafeさんが意図されているものとは違ってしまっているかもしれませんが、simpleに書き直すとこうなりますよね。

$sql = "INSERT INTO metadata(me_date, me_info, me_file) VALUES( '.substr$table', '.$note.', '.$filename.')";

気になるのは格納される各変数の前後に"."がついていることなんですが、これって、実は連結するためにつけていたものだったりします?
で、あれば、勝手に展開してくれますから、

$sql = "INSERT INTO metadata(me_date, me_info, me_file) VALUES('substr$table','$note','$filename')";

のようにしても大丈夫だと思いますよ。

いずれにせよ、#1の方が書かれているように"echo $sql;"で逐一確認しながらすすめた方がいいでしょうね。

頑張って下さい。

投稿日時 - 2003-08-14 16:31:41

お礼

お礼が遅くなりました。ビンゴです!
自分自信ででややこしくしていたらしく
$sql = "INSERT INTO metadata(me_date, me_info, me_file) VALUES('substr$table','$note','$filename')";
をそのまま貼り付けるだけで解決してしまいました。
これからの参考にしていきたいと思います。
ありがとうございました。

投稿日時 - 2003-09-03 14:41:46

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

全くプログラムの知識なしなので、ヒントになるかどうかわかりませんが・・・。

私なら、こうするかな~ということでコメントします。
どこまでテストしているのかわからないので、
いきなり今回のプログラムをコーディングしたという
前提で話しをしますと・・。

私なら、まず、1つ1つのステータスが問題ないのか確認す。
例えば、mysql_connect。
これは、ちゃんと接続できているんだろうか?と考えます。ですから、接続だけのコードにして $conn の値を
実行直後に print します。
これが正しいと判断できたら・・
次は、 $sql ="INSERT~"の部分・・。
これは、変数をバリバリ使ってますよね?
これ、変数じゃなく、ちゃんとした値にしたらどうなんだろう?とか、私なら考えます。
例えば、
$sql = "insert into metadata(me_date, me_info, me_file) values(1,2,3)";
なんて具合です。
これがOKなら、変数を使うところを1つづつ増やします。
これは、$table、$note、$filenameのいづれかが原因かもという推測の元に考えたことです。

という具合なのですが・・・。
ヒントというよりアドバイス的な感じなりました・・。

投稿日時 - 2003-08-14 15:59:34

お礼

お返事ありがとうございます。
ちょっと焦っていたので単純なところを見逃していたようです。
一つ一つやっていくべきでしたね。
ありがとうございました。

投稿日時 - 2003-09-03 14:42:58

あなたにオススメの質問