mysql插入查询在php中失败

时间:2014-09-02 13:50:02

标签: php mysql sql mysqli syntax-error

我正在使用数据库将近一年,这次当我尝试使用mysql和php时它无法工作,我尝试使用mysqli_error()函数,这也不起作用 我创建了数据库,这是一个非常简单的表,有2列,它不起作用,我想知道我能做些什么,这是我试过的

 <?php
    $cnn=mysqli_connect("localhost","root","password");
    if(!$cnn){
    die("data base connection failed :" . mysqli_error());
    }
    //select a kimai fekr db
    $db_select=mysqli_select_db($cnn,"testi");
    if (!$db_select){

    die("database selection failed:" . " " . mysqli_error());
    }
?>
<?php
$uname="morteza";
$id=1;
$query="insert into test ('id','uname') values ($id,'{$uname}')";
$result=mysqli_query($cnn,$query);
if($result){
    echo "<p>user added</p>";
}
else{
echo "<p>user not added </p>" . mysqli_error('$cnn');}
mysqli_close($cnn);
  ?>

3 个答案:

答案 0 :(得分:4)

这些不是正确的column identifiers

('id','uname')
 ^  ^ ^     ^

要么删除它们

(id,uname)

或使用反引号

(`id`,`uname`)

在打开<?php标记后立即将错误报告添加到文件顶部 error_reporting(E_ALL); ini_set('display_errors', 1);会发出错误信号

以及or die(mysqli_error($cnn))mysqli_query()


另外,您目前的代码向SQL injection开放。使用prepared statementsPDO with prepared statements他们更安全

答案 1 :(得分:3)

不要在列标识符周围使用单引号。使用滴答或什么都不做:

$query="insert into test (id,uname) values ($id,'{$uname}')";

$query="insert into test (`id`,`uname`) values ($id,'{$uname}')";

答案 2 :(得分:0)

你能试试吗

$query="insert into test (`id`,`uname`) values ('$id','{$uname}')";