查询仅返回9个预期值中的7个

时间:2015-02-25 05:26:06

标签: php mysql pdo

我无法获取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”     }

1 个答案:

答案 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只会显示一个