此查询正确匹配后面的内容:
$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个朋友,但没有人能找到错,我也不能。 我做错了什么?
答案 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));