一个简单的MySQL查询通过 mysqli_connect 返回一个语法错误,但是相同的复制粘贴查询在CLI和phpMyAdmin中都成功。
考虑MySQL 8.0的以下示例:
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$sql = "USE aTable; INSERT INTO aTable (`aColumn`) VALUES ('aValue');";
if (mysqli_query($conn, $sql)) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}
mysqli_close($conn);
?>
当PHP运行时,它会打印一个错误:
使用表格;插入表格(aColumn
)值('aValue');
错误:SQL语法中有错误;请查看与您的MySQL服务器版本对应的手册,以了解在第1行的“INSERT INTO aTable(aColumn
)VALUES('aValue')”附近使用的正确语法
然而,当相同的查询粘贴到phpMyAdmin中时,它告诉我:
已插入1行。
插入的行ID:6(查询耗时0.0063秒。)
使用表格;插入表格(aColumn
)值('aValue');
"为什么他们不同“
1条答案
按热度按时间mzillmmw1#
从PHP代码中删除USE,因为已经在mysqli_connect方法中选择了数据库。
应道:
此外,请确保在INSERT查询中没有使用数据库名称。