php和mysql中非常简单的代码:
代码在mysql表中插入数据:
<?php
include("config.php");
$sql="INSERT INTO messages_sent (to) VALUES (35)";
$result=mysql_query($sql);
if(!$result)
{
echo("<br>Sorry the message could not be inserted into table messages_sent</br><br>");
die(mysql_error());
}else{
echo("<br>Message Inserted</br>");
}
?>
表创建代码如下:
$sql="CREATE TABLE IF NOT EXISTS `messages_sent`(
`id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
`to` INT(11) NOT NULL,
`from` INT(11) NOT NULL,
`msg` TEXT NOT NULL,
`viewed` TINYINT(2)NOT NULL,
`time` DATETIME NOT NULL
)";
$result=mysql_query($sql);
if(!$result)
{
echo("Sorry the create query for table messages_sent could not be executed ");
die(mysql_error());
}
如果我在msg列中插入数据,则没有问题但是如果列是to
或from
则会出现语法错误问题。
解?
答案 0 :(得分:1)
在您的表格架构中,您将NOT NULL
设置为没有DEFAULT
值到其他字段。所以基本上你不能执行
INSERT INTO messages_sent (to) VALUES (35)
因为您要离开mySQL中的其他字段NULL
而ALSO FROM
和TO
都是Reserved Word。或者在查询中使用返回标记`
。
离。
INSERT INTO `tableName` (`colName`) VALUES (valueHere)
答案 1 :(得分:0)
from
是关键字使用返回标记,如“from”
答案 2 :(得分:0)
在你的表架构中,你正在为所有字段设置NOT NULL。您的查询已执行但在您的表中不接受空值。所以发生错误。请将NOT NULL更改为NULL或更改查询,ALSO FROM和TO是MySQL中的保留字