我无法获取sql php / pdo语句以返回以下查询中的值。查询返回7个值,但我希望9.当我执行变量转储时,我发现它忽略了news.ID和stories.ID的值。
我有一张名为新闻和故事的表格。我无法判断我的问题是否与我的加入有关,或者我在bindparam中使用$ ID是否会弄乱它(如果是这样,我应该使用什么,因为他们都有他们的列名ID各表)。
$results2 = $dbh->prepare("select
wp_users.ID,
wp_users.display_name,
stories.ID,
stories.SID,
news.ID,
news.WID,
news.text,
news.approved,
news.position
FROM news
LEFT JOIN stories on news.SID = stories.SID
LEFT JOIN wp_users ON news.ID = wp_users.ID
WHERE (stories.SID = $the_SID) AND (news.approved = 'N')
AND (news.position= $cont) order by news.WID asc limit 10");
$results2->bindParam(':wp_users.ID', $user_ID, PDO::PARAM_INT);
$results2->bindParam(':display_name', $display_name, PDO::PARAM_STR);
$results2->bindParam(':stories.ID', $ID, PDO::PARAM_INT);
$results2->bindParam(':stories.SID', $the_SID, PDO::PARAM_STR);
$results2->bindParam(':news.WID', $WID, PDO::PARAM_STR);
$results2->bindParam(':news.ID', $ID, PDO::PARAM_INT);
$results2->bindParam(':text', $text, PDO::PARAM_STR);
$results2->bindParam(':approved', $f = N, PDO::PARAM_STR);
$results2->bindParam(':position', $cont, PDO::PARAM_INT);
$results2->execute();
$row2 = $results2->fetchAll(PDO::FETCH_ASSOC);
这是var转储结果:
array(7){ [" ID"] => string(1)“1” > [" DISPLAY_NAME"] => string(9)“admin” [" SID"] => string(2)“77” > [" WID"] => string(3)“236” > ["文本"] => string(32)“sfkjsdjsdlfjsdkfjksdjfdsjfksfdks” > ["批"] => string(1)“N” ["位置"] => string(2)“13” }
答案 0 :(得分:0)
你必须在ID之间做出改变,
将其更改为此类
$results2 = $dbh->prepare("select
wp_users.ID AS ID1,
wp_users.display_name,
stories.ID AS ID2,
stories.SID,
news.ID AS ID3,
.....");
因为你有3个ID的mysql只会显示一个