-1

您好,我正在处理从两个表中选择列的 PHP 代码。

这是我的代码:

$result2  = mysql_query("SELECT  * 
                         FROM   `videos`, `m_subedvids` 
                         WHERE  `videos.approved`='yes' AND 
                                `videos.user_id`='$subedFOR' 
                         ORDER BY `videos.indexer`
                         DESC LIMIT $newVID");

while($row2 = mysql_fetch_array($result2))
{
    $indexer   = addslashes($row2['videos.indexer']);
    $title_seo = addslashes($row2['videos.title_seo']);
    $video_id  = addslashes($row2['videos.video_id']);
    $title     = addslashes($row2['videos.title']);
    $number_of_views = addslashes($row2['videos.number_of_views']);
    $video_length    = addslashes($row2['videos.video_length']);
}

当我尝试用它打印$indexer时,echo $indexer;它没有给我任何结果。我在这段代码中的错误在哪里?

4

2 回答 2

2

在我看来,关键'indexer'不在您的结果中。很难说,因为您没有列出表的定义并且您正在使用SELECT *,所以我们看不到名称。

如果SELECT *...您使用SELECT col1, col2, .... 是的,SELECT *现在将为您节省一些输入,但是当您或其他任何处理您的代码的人每次使用该行代码时都必须检查表定义时,您将失去那个时间。

因此,请尝试更改您的查询以明确选择您使用的列。如果它是无效的列,您将立即收到错误,而不是您现在遇到的这种无声的失败,您稍后也会感谢自己。

于 2013-11-07T19:06:41.870 回答
0

只要videos.indexer是查询中使用的所有表中唯一的字段名称,您就可以更改

$indexer = addslashes($row2['videos.indexer']);

$indexer = addslashes($row2['indexer']);

引用结果时不需要(或不能)使用表名。

于 2013-11-07T18:51:33.630 回答