错误:INSERT INTO MariaDB

时间:2018-01-15 20:26:00

标签: sql mariadb

我的代码:

<?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')附近使用正确的语法

如何解决?

2 个答案:

答案 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)";