如何将多个列绑定到PDO中的一个变量,如查询?

时间:2014-08-08 13:59:32

标签: php mysql pdo sql-like

我有一个变量$search,我想在多列中搜索包含$search的记录

$query="Select * from products where name LIKE ? OR color LIKE ?"
$stmt = $this->pdo->prepare($query);
$results=$stmt->execute(array("%$search%","%$search%"));

但是当我尝试执行print_r($results);时,除了'1'之外我什么都没有显示。问题可能是$search变量与查询的绑定。所以我很好奇是否有处理这种情况的方法以及最好的工作方式。谢谢

2 个答案:

答案 0 :(得分:3)

$ results是PDOStatement执行的成功状态;返回的行仍在$ stmnt对象中。您需要迭代返回的行并单独打印。

while ($row = $stmnt->fetch(PDO::FETCH_ASSOC)) {
    print_r($row);
}

会奏效。

答案 1 :(得分:0)

您还可以使用以下内容:

while ($row = $stmnt->fetch()) {

       echo $row['YOUR COLUMNS NAME HERE'].'<br>';
}

或使用绑定列:

$stmt->bindColumn('COLUMN 1 NAME', $variable1);
$stmt->bindColumn('COLUMN 2 NAME', $variable2);
$stmt->bindColumn('COLUMN 3 NAME', $variable3);
//...... GO ON LIKE THIS
$stmt->execute();