消息脚本-查询时不上传文本


Messaging Script - Text isn't uploading when queried

我有一个简单的消息传递脚本,允许管理员向用户发送预定义的消息。

似乎阻止查询完成的两个字段是主题和主体-数据库中的格式都是默认设置为NULL的"文本"。由于某些原因,相关性被设置为latin1_swedish_ci。

我知道这些是错误的,如果我在将它们插入数据库时使它们为NULL,整个查询是成功的。

查询是在按钮按下触发的(错误不在这里,因为我上面的查询工作完美)。

两个变量定义如下:

$subject = "You have a new message!";
$body    = "<a href='?page=update'>click here to see it.</a>";

mysql查询如下:

mysql_query("INSERT INTO message VALUES(NULL, '$user_id', '$list_id', $subject , $body, '0', '$query_date_user', '1')");

我看过一些关于消息脚本的教程,它们似乎都没有我错过的任何其他因素。

任何帮助都将是非常感激的。

提前感谢。

在$subject和$body之间加上引号

mysql_query("INSERT INTO message VALUES(NULL, '$user_id', '$list_id', '$subject' , '$body', '0', '$query_date_user', '1')");

谢谢Marc b !实际上,他也需要转义$body中的单引号。

您的$body变量中的单引号(')导致语法错误。因为你没有对查询调用进行任何错误处理,所以你不会看到mysql会向你尖叫的消息。

你的代码应该是:

$subject = mysql_real_escape_string("You have a new message!");
$body    = mysql_real_escape_string("<a href='?page=update'>click here to see it.</a>");
$sql = "INSERT INTO message VALUES(NULL, '$user_id', '$list_id', '$subject' , '$body', '0', '$query_date_user', '1')";
mysql_query($sql) or die(mysql_error());

还要注意查询字符串中变量周围的引号。您不能在SQL查询中插入原始字符串并期望它能正常工作。

注意:在开发过程中添加or die(mysql_error())有助于捕获这些类型的错误。如果你从一开始就这样做,你会立即发现有问题。