mysql数据在简单查询中插入prob

时间:2012-01-04 06:24:04

标签: php mysql

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列中插入数据,则没有问题但是如果列是tofrom则会出现语法错误问题。

解?

3 个答案:

答案 0 :(得分:1)

在您的表格架构中,您将NOT NULL设置为没有DEFAULT值到其他字段。所以基本上你不能执行

INSERT INTO messages_sent (to) VALUES (35)

因为您要离开mySQL中的其他字段NULL而ALSO FROMTO都是Reserved Word。或者在查询中使用返回标记`

离。

INSERT INTO `tableName` (`colName`) VALUES (valueHere)

答案 1 :(得分:0)

from是关键字使用返回标记,如“from”

答案 2 :(得分:0)

在你的表架构中,你正在为所有字段设置NOT NULL。您的查询已执行但在您的表中不接受空值。所以发生错误。请将NOT NULL更改为NULL或更改查询,ALSO FROM和TO是MySQL中的保留字