【问题标题】:PDO UNION with ? not workingPDO 联合与 ?不工作
【发布时间】:2016-10-08 14:20:52
【问题描述】:

我是 SQL、PDO 和 PHP 的新手,所以我知道我对自己有很多要求。还是什么都没敢... 我想组合两个查询的结果,并使用别名使 UNION 查询的列名相同。 我已经尝试了各种减少,直到没有什么可以减少,我的应用程序需要的实际结果还有更多。我有以下代码,想不出它为什么不起作用。

这两个查询都可以单独工作,但是当我将它们与 UNION 结合起来时,我什么也得不到。任何建议都会很有帮助。

include ("conn/dbCon_1.php");
$sql= "(SELECT  First_Name AS myResult FROM tbl_User WHERE First_Name LIKE ?)";
$sql.=" UNION ALL ";
$sql.= "(SELECT Course_Title AS myResult FROM tbl_Course  WHERE Course_Title LIKE ? )";
$c1 =  "%le%";
try {
    $qResults = $dbConn->prepare($sql); 
    $qResults->execute([$c1]); 
    $qResults->fetch(PDO::FETCH_ASSOC);
    return $qResults;
    //Close connection
    $dbConn = null;
} catch(PDOExcepetion $e) {
    echo $e->getMessage();
}

非常感谢您的期待并感谢您的关注。

布里

【问题讨论】:

  • 您的查询有两个?s,但您只提供了一个参数。

标签: php mysql sql pdo union


【解决方案1】:

由于您有 两个 占位符 - 您应该将值绑定 两次

$qResults->execute([$c1, $c1]);

【讨论】:

  • 天哪,我想我会从事园艺工作,并将编码留给专家!谢谢,这就是它。 :)
  • @Bri 为什么不两者都做?我种仙人掌和代码,只是不同时 ;-)
  • @Bri 考虑接受答案然后meta.stackexchange.com/questions/5234/… 然后返回这里做同样的事情,欢迎来到 Stack
【解决方案2】:

您使用两个参数调用查询(就像在第一个查询中和在第二个查询中一样)即使它们具有相同的值..所以您必须传递两个参数

$qResults->execute([$c1, $c1]);

【讨论】:

    猜你喜欢
    • 2016-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-27
    • 2016-04-13
    相关资源
    最近更新 更多