查询仅返回 9 个预期值中的 7 个
Query only returning 7 of 9 expected values
我无法将 sql php/pdo 语句 return 从以下查询中获取值。查询 return 有 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″
> ["text"]=>
string(32) “sfkjsdjsdlfjsdkfjksdjfdsjfksfdks”
> ["approved"]=>
string(1) “N”
["position"]=>
string(2) “13″
}
你必须区分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个IDmysql只会显示一个
我无法将 sql php/pdo 语句 return 从以下查询中获取值。查询 return 有 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″ > ["text"]=> string(32) “sfkjsdjsdlfjsdkfjksdjfdsjfksfdks” > ["approved"]=> string(1) “N” ["position"]=> string(2) “13″ }
你必须区分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个IDmysql只会显示一个