pdo在db中匹配名称

时间:2015-09-22 13:40:03

标签: mysql pdo

此查询正确匹配后面的内容:

$sql = $pdo->query('SELECT ssn FROM doge WHERE first_name = "Anne-Christine"');

然而,当我这样写它时,它给了我" SQLSTATE [42S22]:未找到列:1054未知列' Anne'在' where子句'":

$namn = "Anne-Christine";
$sql = $pdo->query('SELECT ssn FROM doge WHERE first_name = '. $namn .'');

这个查询没有给我留下没有打印失败的结果:

$namn = "Anne-Christine";
$sql = $pdo->query('SELECT ssn FROM doge WHERE first_name = ". $namn ."');

与此查询相同:

$sql = $pdo->prepare('SELECT ssn FROM doge WHERE :first_name = first_name');
            $query->execute(array(
            ':first_name' => $namn
            ));

最后两个查询也会崩溃页面,不再写出任何代码。我问了3个朋友,但没有人能找到错,我也不能。 我做错了什么?

2 个答案:

答案 0 :(得分:0)

给出以下内容。

$sql = $db->prepare("SELECT ssn FROM doge WHERE first_name = :first_name");
$sql->execute(array(':first_name' =>$namn));
$row = $sql->fetch();

答案 1 :(得分:0)

您不需要在查询时在valeus中添加简单引号只需使用预准备语句

$sql = $pdo->prepare('SELECT ssn FROM doge WHERE first_name = ?');
$sql->execute(array($namn));