dポイントプレゼントキャンペーン実施中!

FedoraCore6 + Apache2.2.4 + MySQL5.0.41 + PHP4.4.7 で学習しています。

TABLE aaa( id MEDIUMINT NOT NULL AUTO_INCREMENT, hiduke DATE, xyz INT, comment VARCHAR(30), PRIMARY KEY (id) );  という表を作り、
入力フォーム [TEST.html]
<html><head><meta http-equiv="Content-Type" content="text/html; charset=EUC-JP"></head>
<body><p>データ入力</p>
<form action="datatest.php" method="POST">
<p>日付<input type="text" name="hiduke" size="12"></p>
<p>データ<input type="text" name="xyz" size="6"></p>
<p>コメント<input type="text" name="comment" size="40"></p>
<input type="submit" value="登録">
<input type="reset" value="リセット">
</form></body></html>
------------------
書込スクリプト [datatest.php]
<html><body>
<php
extract($_POST);
mysql_connect(localhost,bbbbbb,******);
mysql_select_db(cccccc);
$sql = "insert into aaa values(0 '$hiduke','$xyz','$comment')";
mysql_query($sql);
?>
下記の内容で登録しました<p>
日付:<? echo $hiduke; ?> <br>
データ:<? echo $xyz; ?> <br>
コメント:<? echo $comment; ?> <br>
<p></body></html>
でデータを登録しようとしましたが書き込みができません。何が悪いのでしょうか?
基本的なところが間違っていると思い、いろいろ調べましたが、私の現在の力では原因を見つけることができないでいまず。よろしくご指導下さい。
なお、コマンドラインから、insert into aaa values(0, 20071008,3840,'qqqqq'); なら書込みできます。

A 回答 (1件)

とりあえず


values(0
の後ろにカンマが抜けてますね。

普通は以下の様に書いてデバッグします

mysql_query($sql) or die(mysql_error().$sql."<br>");

この回答への補足

あ、すみません。 values(0 の後ろのカンマは、この質問を書き込むときに書き落としたのです。テスト用は、カンマが入っています。それでもデータが書き込めないのです・・・。

補足日時:2007/10/08 12:40
    • good
    • 0
この回答へのお礼

自己レスです。書込スクリプト書き始めが <php となっていました!
<?php に修正したら正常に動きました。お恥ずかしいです。

しかし、yambejp様、sqlデバッグの方法を教えていただき、大変参考になりました。Webで検索してもsql文を「printして確認する」「print_rで確認する」などとあって、具体的にどのようにすれば良いか、分からなかったのです。ありがとうございました。
折角ですので、もし宜しければ、「printして確認する」「print_rで確認する」の具体的方法も教えて頂ければ幸いです。もう少し時間を置いて締め切らせて頂こうと思っています。

お礼日時:2007/10/08 14:18

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!