繁体   English   中英

SQL语法错误-插入操作(PHP)

[英]SQL Syntax Error - Insert Operation (PHP)

我已经多次使用此代码而没有任何问题,并且无法确定为什么会出现语法错误。 我目前正在插入“虚拟”数据,以确认我的变量不是问题。

$connection = mysqli_connect($hostname,$username,$password,$database);
if (mysqli_connect_errno()){
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
} else {
  echo "connection success <br>"; 
}

$query = "INSERT INTO Radio (State, City, Call, Dial, Lat, Long, Lat2, Long2) VALUES ('abc', 'abc', 'abc', '2', 'abc', 'abc', 'abc', 'abc')";
$result = mysqli_query($connection, $query);
printf("Errormessage: %s\n", mysqli_error($connection));
mysqli_close($connection);

我得到以下输出:

connection success 
Errormessage: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Call, Dial, Lat, Long, Lat2, Long2) VALUES ('abc', 'abc', 'abc', '2', 'abc', 'ab' at line 1

我知道我的连接正在工作,并且我有语法错误。 话虽如此,我无法发现语法问题。 我有8个字段,并提供8个值。 字段名称与我的数据库定义完全匹配:

数据库定义

有任何想法吗? 完全没有插入任何内容。 谢谢。

原来“ CALL”是保留字,因此我不能将其用作数据库列。 笨蛋 问题解决了。 与“ LONG”相同。 应该早点意识到这一点。 也许这会帮助别人。

CALL是保留字,请使用其他名称

如前所述, Call是保留字。 如果确实需要,您仍然可以使用此列名称,每次在查询中使用它时,都只需要对其进行转义。 像这样

"INSERT INTO Radio (State, City, `Call`, Dial, Lat, Long, Lat2, Long2) VALUES ('abc', 'abc', 'abc', '2', 'abc', 'abc', 'abc', 'abc')"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM