MySQL无法将数据插入表单

时间:2014-04-09 02:27:41

标签: php

我正在尝试将一些数据提交到我的mysql数据库,但是没有出现任何数据。有人可以帮我弄清楚我做错了什么。

提交表单后的PHP文件:

$db_name="database";
$tbl_name="messages";

session_start();
$from= $_SESSION['username'];


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

// get data that sent from form 
$to=$_POST['to'];
$subject=$_POST['subject'];
$message=$_POST['message'];
$date = date('m/d/Y');

$sql="INSERT INTO $tbl_name(to, from, message, subject, date,read)VALUES('$to', '$from',                  $message', '$subject', '$date',0)";
$result=mysql_query($sql); 

注意:服务器正在运行。数据库名称:数据库表名:消息

2 个答案:

答案 0 :(得分:2)

tofromreserved words,必须用反引号包装。

(`to`, `from`, message, subject, date,read)

如果可能的话,最好不要选择那些词。

另外,$message'中缺少的引号更改为'$message'

('$to', '$from', '$message', '$subject', '$date',0)

同时删除以下引号:

mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB");

为:

mysql_connect($host, $username, $password)or die("cannot connect"); 
mysql_select_db($db_name)or die("cannot select DB");

使用错误报告。

另外,您目前的代码向SQL injection开放。将mysqli_*prepared statementsPDO

一起使用

<强>脚注:

mysql_*函数弃用通知:

http://www.php.net/manual/en/intro.mysql.php

从PHP 5.5.0开始,不推荐使用此扩展,不建议用于编写新代码,因为将来会删除它。相反,应使用mysqliPDO_MySQL扩展名。在选择MySQL API时,另请参阅MySQL API Overview以获得进一步的帮助。

这些功能允许您访问MySQL数据库服务器。有关MySQL的更多信息,请访问»http://www.mysql.com/

可以在»http://dev.mysql.com/doc/找到MySQL的文档。


<强>密码

我还注意到您以纯文本格式存储密码。不建议这样做。

使用以下其中一项:

其他链接:

答案 1 :(得分:0)

通过添加以下内容来回显您的查询:

$sql="INSERT INTO $tbl_name(to, from, message, subject, date,read)VALUES('$to', '$from',                  $message', '$subject', '$date',0)";
die($sql);

给了我这个:

INSERT INTO messages(to, from, message, subject, date,read)VALUES('', '', ', '', '04/08/2014',0)

这条消息中没有引用的消息&#39; ...更改此行:

$sql="INSERT INTO $tbl_name(to, from, message, subject, date,read)VALUES('$to', '$from',                  '$message', '$subject', '$date',0)";