【发布时间】:2015-04-27 00:29:58
【问题描述】:
我无法让 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 转储结果:
数组(7){ ["ID"]=>字符串(1) “1” > ["display_name"]=>string(9) “管理员” ["SID"]=>字符串(2) “77” > [“WID”]=>字符串(3)“236” > [“文本”]=>字符串(32)“sfkjsdjsdlfjsdkfjksdjfdsjfksfdks” > [“批准”]=>字符串(1)“N” [“位置”]=>字符串(2)“13” }
【问题讨论】: