0

PHPフォームからゲストブックの詳細を送信すると、「成功」で終わりますが、MySQLデータベースを見ると、新しいエントリが作成されるだけで、自動IDと日付を期待して詳細が表示されません.

フォームは次のとおりです: guestbook.php

 <form id="form1" name="form1" method="post" action="addguestbook.php">
 <td><input name="name" type="text" id="name" size="40" /></td>
 <td><input name="email" type="text" id="email" size="40" /></td>
 <td><textarea name="comment" cols="40" rows="3" id="comment"></textarea></td>
 <td><input type="submit" name="Submit" value="Submit" /> <input type="reset" 
 name="Submit2" value="Reset" /></td>

スクリプトは次のとおりです: addguestbook.php

 $host="address"; // Host name 
 $username="username"; // Mysql username 
 $password="password"; // Mysql password 
 $db_name="guestdb"; // Database name 
 $tbl_name="guestbook"; // Table name 

// Connect to server and select database.
 mysql_connect("$host", "$username", "$password")or die("cannot connect server "); 
 mysql_select_db("$db_name")or die("cannot select DB");

 $datetime=date("y-m-d h:i:s"); //date time

 $sql="INSERT INTO $tbl_name(name, email, comment, datetime)VALUES('$name', '$email',     
'$comment', '$datetime')";
 $result=mysql_query($sql);

//check if query successful 
 if($result){
 echo "Successful";
 echo "<BR>";

// link to view guestbook page
 echo "<a href='viewguestbook.php'>View guestbook</a>";}

 else {
 echo "ERROR";}
 mysql_close();
4

3 に答える 3

4

SQL クエリ ( ) を準備する前に、とvars にデータを$sql入力する必要があります。$name$email$comment$_POST

<?php

// ..

$name    = $_POST['name'];
$email   = $_POST['email'];
$comment = $_POST['comment'];

$sql = "INSERT INTO $tbl_name(name, email, comment, datetime)VALUES('$name', '$email',     
'$comment', '$datetime')";
$result = mysql_query($sql);

// ..

ボーナス: PDOを使用する

于 2012-11-14T15:03:14.300 に答える
2

私が見ることができるように、あなたは変数を定義していません..これを上に追加してください$datetime=da...

$name = isset($_POST['name']) ? $_POST['name'] : false;
$email = isset($_POST['email']) ? $_POST['email'] : false;
$comment = isset($_POST['comment']) ? $_POST['comment'] : false;

それに加えて:

于 2012-11-14T15:03:47.903 に答える
1

これには複数の理由が考えられます。

クエリを次のように変更することをお勧めします。

INSERT INTO $tbl_name set name='$name', email='$email', comment='$comment', datetime='$datetime'
于 2012-11-14T15:06:12.177 に答える