php,你的SQL语法有错误

时间:2016-12-18 09:07:16

标签: php mysql sql

我面对这个问题我不知道如何解决它 当我尝试将信息添加到我的数据库时出现此错误

  

您的SQL语法有错误;检查手册   对应于您的MySQL服务器版本,以便使用正确的语法   第1行附近的“1”

<?php
$con=mysqli_connect('localhost','root','');
$db=mysqli_select_db($con,'healthy_db');
if ($con) {
echo "good  ";
}else {
die('error');
}

$sql = mysqli_query($con,"INSERT INTO `healthy_db`.`fitness` (id,workout_date,first_meal,second_meal) values (null,'2/12/2016','sweet','cake')");
if (mysqli_query($con,$sql)){
    echo "insert";
    } else {
        echo "error" .$sql ."<br>". mysqli_error($con);
        }
?>

4 个答案:

答案 0 :(得分:0)

如果数据库中的id不为null,则可能会出现此错误,取消id及其值,并确保使其自动递增。

答案 1 :(得分:0)

如果id是主键,则无法将其设置为null。另一个错误是您使用mysqli_query两次。请尝试以下.. id将自动如果是pk,则递增。

$sql ="INSERT INTO fitness (workout_date,first_meal,second_meal) values ('2016-12-02','sweet','cake')";
if (mysqli_query($con,$sql)){
    echo "insert";
    } else {
        echo "error" .$sql ."<br>". mysqli_error($con);
        }
?>

答案 2 :(得分:0)

试试这个:

替换它:

$sql = mysqli_query($con,"INSERT INTO `healthy_db`.`fitness` (id,workout_date,first_meal,second_meal) values (null,'2/12/2016','sweet','cake')");

使用:

$sql = "INSERT INTO `healthy_db`.`fitness` (workout_date,first_meal,second_meal) values ('2/12/2016','sweet','cake')";

答案 3 :(得分:0)

据我所知,您的代码中有两个问题。 $ sql变量已经使用你的连接设置你的查询,所以你不需要在if块中运行查询,其次(假设它可能应该和将来的自动增量id)然后你不需要命名它并尝试填充它。

有几种方法可以解决自动增量部分。

指定的列:(id,col1,col2)VALUES('','data','moredata')或(col1,col2)VALUES('data','moredata') 此类型允许您仅选择需要运行查询数据的列。

未指定列:INSERT INTO表VALUES('','data','moredata') 此类型尝试将数据写入所有列,因此查询中的列计数需要与表中的列计数匹配。

<?php
    $con=mysqli_connect('localhost','root','');
    $db=mysqli_select_db($con,'healthy_db');
    if ($con) {
       echo "good  ";
    } else {
       die('error');
    }

    /*
     * I noted something else that may give a syntax error
     * column names need encapsulating. backticks are prefered.
     * See change i've also changed the code slightly to make it 
     * easier for you to see whats going on.
     *
     * Also Incorporating the answer below about the date format
     * to make the accepted answer more complete.
    */       

    $sql = "INSERT INTO `healthy_db`.`fitness` (`workout_date`, `first_meal`, `second_meal`) VALUES ('2016-12-2','sweet','cake')";

    $result = mysqli_query($con, $sql);

    if ($result){
        echo "insert";
    } else {
        echo "error" .$sql ."<br>". mysqli_error($con);
    }
?>