插入查询中的sql语法错误

时间:2013-11-09 12:29:57

标签: php mysql

这里$user是一个关联数组,如何在mysql查询中使用它? 这里的语法错误是什么?

  $sql= 'INSERT INTO users(username,password,contact_no,Pan_card_no) VALUES($user["username"], $user["password"], $user["contact_no"], $user["pan"]';

3 个答案:

答案 0 :(得分:0)

试试这个

 $sql= "INSERT INTO users(username,password,contact_no,Pan_card_no) VALUES('".$user["username"]."', '".$user["password"]."', '".$user["contact_no"]."', '".$user["pan"]."')";

您未关闭括号“)”

答案 1 :(得分:0)

当您使用单引号(')在PHP上定义字符串时,变量的$ -notation将解释。所以最后的sql语句仍然包含$个字符。这不是有效的sql。

而是像这样创建你的陈述:

sprintf('INSERT INTO users(username,password,contact_no,Pan_card_no) VALUES(%s,%s,%s,%s)',
        $user['username'], $user['password'], $user['contact_no'], $user['pan']);

但是请注意,这种sql注射气味。您应该使用预准备语句来提高安全性。使用PDO或PHP的mysqli扩展。

答案 2 :(得分:0)

希望它可以帮到你,

 $sql= 'INSERT INTO users (username,password,contact_no,Pan_card_no) VALUES("'.$user['username'].'", "'.$user['password'].'", "'.$user["contact_no"].'", "'.$user["pan"].'")';