我正在尝试在数据库中插入数据。这是我使用 echo 打印的查询
INSERT INTO tablename(NameOfVisitor, Email, Country,City,ReferenceID,Cell#)VALUES('myname', 'myemail@yahoo.com', 'Pakistan','Lahore','refid',03001234567)
这是我在php代码中的查询
$sql="INSERT INTO $tbl_name(NameOfVisitor, Email, Country,City,ReferenceID,Cell#)VALUES('$name', '$email', '$country','$city','$refId',$cellNo)";
echo "<br>";
echo "<br>";
echo $sql;
echo "<br>";
echo "<br>";
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
die('Could not enter data: ' . mysql_error());
}
echo "Entered data successfully\n";
mysql_close($conn);
当我跑步时,它会给我以下错误。
无法输入数据:SQL语法中有错误;检查 手册,对应右边的MySQL服务器版本 在'第1行'附近使用的语法
查询对我来说是正确的。谢谢。
答案 0 :(得分:5)
从查询中删除#
:
INSERT INTO tablename(NameOfVisitor, Email, Country,City,ReferenceID,Cell#)
^
答案 1 :(得分:0)
#mark用于在SQL中进行注释,因此在您的查询中#之后的所有内容都成为注释(至少在特定行中)
删除#会进行更正。
$sql="INSERT INTO $tbl_name(NameOfVisitor, Email, Country,City,ReferenceID,Cell)VALUES('$name', '$email', '$country','$city','$refId',$cellNo)";
echo "<br>";
echo "<br>";
echo $sql;
echo "<br>";
echo "<br>";
答案 2 :(得分:0)
如果列的名称是Cell#
,那么您必须引用它,以便#
不被视为评论的开头:
INSERT INTO tablename(NameOfVisitor, Email, Country,City,ReferenceID,`Cell#`)VALUES('myname', 'myemail@yahoo.com', 'Pakistan','Lahore','refid',03001234567)
答案 3 :(得分:0)
在Cell#之前和之后使用`,如下面的查询
所示INSERT INTO tablename (
NameOfVisitor, Email, Country,City,ReferenceID,`Cell#`)
VALUES (
'myname', 'myemail@yahoo.com', 'Pakistan','Lahore','refid',03001234567)
所以你的php代码应该如下
$sql="INSERT INTO $tbl_name(NameOfVisitor, Email, Country, City, ReferenceID, `Cell#`) VALUES('$name', '$email', '$country', '$city', '$refId', $cellNo)";
echo "<br>";
echo "<br>";
echo $sql;
echo "<br>";
echo "<br>";
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
echo "Could not enter data: " . mysql_error();
}
echo "Entered data successfully\n";
mysql_close($conn);