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

解決済みの質問

フォームからMySQLにデータが書き込めません。

CentOS5.3 + php5.1.6 + MySQLServer version: 5.0.77の環境です。
下記のスクリプトを書きましたが、点数を書いてsubmitすると、「登録できませんでした」が表示され、データの書き込みができません。
var_dump($sql); で$sqlの内容も表示されますし、echo($conn) も Resource id #2が返ります。 .MYD, .MYI,.frm のパーミッションは777です。
どこが不具合の原因でしょうか? データを登録するためには、どのように修正すれば良いでしょうか? ご教示願えれば幸甚です。

[tensuform.php]
<HTML><BODY>
<H1 ALIGN="CENTER">点数</H1>
<TABLE BORDER="1" ALIGN="CENTER" CELLSPACING="0">
<FORM action="tensuinst.php" METHOD ="POST">
<TR><TD BGCOLOR="#CCCCCC">点数</TD>
<TD><INPUT TYPE="TEXT" NAME="tensu" value="" maxlength="3"></TD></TR>
<INPUT TYPE="SUBMIT" NAME="SUBMIT" VALUE=" 書 込 ">
<INPUT TYPE="RESET" VALUE=" ク リ ア "></TD>
</TR></TABLE></FORM></BODY></HTML>

[ tensuinst.php]
<HTML><BODY>
<?php
$tensu=$_POST['tensu'];
print $tensu."<br/>";
if($tensu ==" "){
echo ("点数が書き込まれていません。");
?>
<a href="tensupoform.php">"こちらからデータを書き込んで下さい。"</a><BR>
</BODY></HTML>);
<?php exit();
}elseif(!$conn = mysql_connect('localhost', "abcd", "efgh")){
die("データベース接続エラー.<br />");
}else{ mysql_select_db("wxyz", $conn);
$sql = "INSERT INTO kokugo('tensu') VALUES('$tensu')";
// var_dump($sql); echo("<br>");
// echo($conn)."<br>";
mysql_query($sql, $conn) or die("登録できませんでした" );
mysql_close($conn);
print("登録しました。");
} ?>

投稿日時 - 2010-11-18 14:54:51

QNo.6327734

困ってます

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

デバッグするなら

>mysql_query($sql, $conn) or die("登録できませんでした" );

のところを

mysql_query($sql, $conn) or die(mysql_error());

としてみてください

とりあえず文法的には
>$sql = "INSERT INTO kokugo('tensu') VALUES('$tensu')";

$sql = "INSERT INTO `kokugo`(`tensu`) VALUES('{$tensu}')";

とした方がよいでしょう。
(もちろんサニタイズ処理は別途行う前提で)

投稿日時 - 2010-11-18 15:39:01

お礼

有難うございました。
お蔭さまで、原因を特定することができました。感謝です。

投稿日時 - 2010-11-18 18:30:13

ANo.1

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

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

回答(1)

あなたにオススメの質問