php - INSERT 由于某种原因不会运行

标签 php mysql

我确定这是我遗漏的一些愚蠢的东西,但任何人都可以确定为什么以下内容不起作用:

#sanitise variables
$player1 = GetSQLValueString($_POST['player1'], "text");
$battle = GetSQLValueString($_POST['battle'], "text");
$subject = "You Have Registered For ".$battle."";
$subject = GetSQLValueString($subject, "text");
$message = "You Have Registered For ".$battle."<br /><br />
  Keep an eye on your PM's, it won't take long before your challenger appears!";
$message = GetSQLValueString($message, "text");

echo $player1;
echo "<br />";
echo $subject;
echo "<br />";
echo $message;
echo "<br />";
echo $time;
echo "<br />";

#insert alerts into private message databases
mysql_select_db($database_conn, $conn);
$query_rsSendAlert = "INSERT INTO site_private_messages 
  (sender, recipient, read_status, subject, message, `timestamp`) 
  VALUES ('Admin', $player1, 'n', $subject, $message, `$time`)";
mysql_query($query_rsSendAlert, $conn) or die(mysql_error());

echo 只是为了让我可以在插入变量之前看到变量(换句话说,以帮助发现问题。这是它吐出的内容的示例:

'ferdia'
'You Have Registered For \'Fifa 11 Fracus!\''
'You Have Registered For \'Fifa 11 Fracus!\'

Keep an eye on your PMs, it won\'t take long before your challenger appears!'
1304866340

表格格式如下:

CREATE TABLE `site_private_messages` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `sender` varchar(30) DEFAULT NULL,
  `recipient` varchar(30) DEFAULT NULL,
  `read_status` varchar(1) DEFAULT NULL,
  `subject` varchar(200) DEFAULT NULL,
  `message` text,
  `timestamp` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=39 DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT;

有什么建议吗?

最佳答案

改变这个:

$query_rsSendAlert = "INSERT INTO site_private_messages 
                        (sender, recipient, read_status, subject, message, `timestamp`) 
                      VALUES 
                        ('Admin', $player1, 'n', $subject, $message, `$time`)";
             //Error, no ` allowed in values, use ' instead.         ^     ^

...进入这个:

$query_rsSendAlert = "INSERT INTO site_private_messages 
                        (sender, recipient, read_status, subject, message) 
                      VALUES 
                        ('Admin', $player1, 'n', $subject, $message)";

MySQL 会自动填充时间戳。

关于php - INSERT 由于某种原因不会运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5928143/

相关文章:

mysql - 如何通过网络从sql server导出或导入sql server数据库到mysql server

php - 使用 Zend_GData 和 Google Contacts API 将联系人添加到群组

javascript - 文本框中仅允许基于连续 ID 的数字

php - MySQL PHP : PDO connection not working when getting credentials from file()

javascript - Mysql 和 javascript 中的日期时间转换

mysql - 使用 1 个 SQL 检索多条记录或使用多个 SQL 检索单个记录

php - 在登录表单中禁用自动完成输入文本

php - 函数 __construct 上的数据库参数

mysql - 重叠预订 SQL

php - Laravel 不获取 MySQL 登录信息