我的代码:
<?php
$servername = "127.0.0.1";
$database = "";
$username = "";
$password = "";
$conn = mysqli_connect($servername, $username, $password, $database);
if (!$conn) {
die("failed: " . mysqli_connect_error());
}
echo "connect<br>";
$sql = "INSERT INTO test2 (1, 2, 3) VALUES ('1', '2', '3')";
if (mysqli_query($conn, $sql)) {
echo "add";
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}
mysqli_close($conn);
?>
我收到了错误:
连接 错误:INSERT INTO test2(1,2,3)VALUES('1','2','3') 您的SQL语法有错误;检查与您的MariaDB服务器版本对应的手册,以便在第1行“1,2,3”VALUES('1','2','3')附近使用正确的语法
如何解决?
答案 0 :(得分:0)
在第一组括号中,&#39; 1&#39;,&#39; 2&#39;,&#39; 3&#39;预期作为列名。我认为你打算将这些视为价值观。
答案 1 :(得分:0)
如果您仅使用数字命名列,则必须使用它们周围的反引号,例如引用它们。参见官方章节Identifier Names,其中指出:
进一步规则:
标识符名称可以以数字开头,但不能只包含 数字,除非引用。
所以,正确的是:
$sql = "INSERT INTO test2 (`1`, `2`, `3`) VALUES ('1', '2', '3')";
或者,如果列的类型为INT(或类似):
$sql = "INSERT INTO test2 (`1`, `2`, `3`) VALUES (1, 2, 3)";