PDO UNION with ? not working

不羁的心 提交于 2019-12-23 03:04:42

问题


I am new to SQL and PDO and PHP so I know I am asking a lot of myself. Still nothing ventured... I want to combine the results of two queries and am using aliases to make the column names the same for the UNION query. I have tried all sorts of reducing till there is nothing left to reduce, there are many more in the actual result I need for my app. I have the following code by can't think why it is not working.

Both queries work on their own but I get nothing when I combine them with a UNION. Any suggestions would be most helpful.

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

Many thanks in anticipation and thank you for your kind attention.

Bri


回答1:


You invoke the query with two parameters (like in the first Query and like in the second) even if they have the same value .. so you have to pass two parameters

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



回答2:


As you have two placeholders - you should bind values twice:

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


来源:https://stackoverflow.com/questions/39933485/pdo-union-with-not-working

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!