【问题标题】:how to bind several columns to one variable in PDO like query?如何将多列绑定到 PDO 中的一个变量,如查询?
【发布时间】:2014-08-08 13:59:31
【问题描述】:

我有一个变量$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 变量与查询的绑定。所以我很好奇是否有办法处理这种情况一种情况,什么是最好的工作选择。谢谢

【问题讨论】:

  • 您所做的就是运行查询。你什么都没拿到。在现实世界中,你已经在快餐柜台下订单,你已经拿到了编号的收据,现在你实际上必须得到你的食物。
  • 感谢@MarcB 指出...其实我接触PHP 很久了...忘记了

标签: php mysql pdo sql-like


【解决方案1】:

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

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

会起作用的。

【讨论】:

  • 该死的我忘记了,并认为它是关联数组。我的错:)。谢谢指出
【解决方案2】:

您还可以使用以下内容:

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();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-16
    • 2015-03-01
    • 2015-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-15
    • 2019-01-18
    相关资源
    最近更新 更多