奇怪的mysql语法错误,On和Off

时间:2014-09-22 09:31:02

标签: php mysql

所以这是我的代码:

 $satake = $_POST['satake'];
    $id = $_POST['id'];

    $query ="INSERT INTO `fn`('satake', 'id') VALUES ('{$satake}' , {$id} )";
    if (mysql_query($query)){
         echo 'goof';
         header("Location : home.php");
         exit;
    }         else{
        echo 'error';
        echo '</ br>';
        echo mysql_error();
    }

问题是,当我第一次运行代码时,除了:

之外,它没有给我任何错误
errorYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''satake', 'id') VALUES ('' , )' at line 1

但是当我改变一件事并将其恢复到原来的位置时,它给了我这个:

Notice: Undefined index: satake in 

Notice: Undefined index: id in 

我的意思是,我的代码与第一眼看到的相同,但是当我更改任何内容并撤消我的更改时,它会给我2个新错误!

我的语法是否正常或我是否严重宣布了我的变种?

2 个答案:

答案 0 :(得分:1)

尝试仅在设置POST时调用变量,并将列名称括在反引号中而不是引号中,如:

if($_POST)
{
    $satake = $_POST['satake'];
    $id = $_POST['id'];

    $query ="INSERT INTO `fn`(`satake`, `id`) VALUES ('{$satake}' , {$id} )";
                              ^
    if (mysql_query($query)){
         echo 'goof';
         header("Location : home.php");
         exit;
    }         else{
        echo 'error';
        echo '</ br>';
        echo mysql_error();
    }
}

答案 1 :(得分:1)

你在查询中犯了语法错误

"INSERT INTO `fn`(`satake`, `id`) VALUES ('".$satake."' , $id )";

正确的方式