我正在尝试在 PHP 中使用 PDO 运行一个简单的查询。代码非常简单:
try {
$sql_query = "select * from Articles where title=':article'";
$dbh = get_PDO_connection();
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $dbh->prepare($sql_query);
$stmt->execute( array( ':article' => "MD Example") );
var_dump($stmt);
$row = $stmt->fetch();
//if($row==null)return 'null';
var_dump($row);
} catch (PDOException $e) {
print $e->getMessage ();
}
var_dump($stmt)
总是打印:
object(PDOStatement)#3 (1) { ["queryString"]=> string(45) "select * from Articles where title=':article'" }
...无论我投入什么execute()
,都没有抛出异常。而且,正如标题所述,fetch()
总是返回 false。您应该知道,如果我将 SQL 查询“硬编码”到字符串中,所有这些都可以正常工作。换句话说,如果我设置$sql_query
为“select * from Articles where title='MD Example'”,则fetch()
返回预期结果。这里发生了什么?