php pdo选择查询条件和order by子句

时间:2015-01-28 14:34:20

标签: php mysql pdo

我需要从我的数据库中选择youtube源。

我在php pdo中创建我的代码。

因为我把这样的条件......

但这不起作用,甚至没有显示任何错误或者也没有显示视频。

当我从下面删除条件时,选择查询其工作正常....

plz建议如何使用php pdo预处理语句将此条件置于select查询中。

感谢...

下面是我选择的代码..

<?php
$youtubesource = "youtubesource <>  ''";
$youtube = $database->getRows("SELECT youtubesource FROM news where youtubesource = :youtubesource ORDER BY id DESC LIMIT 0,1",array(':youtubesource'=>$youtubesource));                        
?>

下面是我的getrows功能

 public function getRows($query, $params=array()){
            try{ 
                $stmt = $this->datab->prepare($query); 
                $stmt->execute($params);
                return $stmt->fetchAll();       
                }catch(PDOException $e){
                throw new Exception($e->getMessage());
            }       
        }

2 个答案:

答案 0 :(得分:2)

如果我分析你的查询,这就是我所看到的:

SELECT youtubesource 
FROM news 
WHERE youtubesource = :youtubesource     
ORDER BY id DESC 
LIMIT 0,1

:youtubesourceyoutubesource <> '',最终查询为:

SELECT youtubesource 
FROM news 
WHERE youtubesource = 'youtubesource <> '''   
ORDER BY id DESC
LIMIT 0,1

youtubesource <> ''建议您尝试获取所有尚未清空youtubesource字段的行。

在这种情况下,您的代码可能如下所示:

$youtube = $database->getRows("SELECT youtubesource FROM news where youtubesource <> '' AND youtubesource is not null ORDER BY id DESC LIMIT 0,1");                    

答案 1 :(得分:0)

您是否需要:在您发送给函数的数组参数中?

$youtube = $database->getRows("SELECT youtubesource FROM news where youtubesource = :youtubesource ORDER BY id DESC LIMIT 0,1",array('youtubesource'=>$youtubesource));

此外,这是正确的:$ youtubesource =&#34; youtubesource&lt;&gt; &#39;&#39;&#34 ;; 不会这样 选择youtubesource FROM news,其中youtubesource = youtubesource <> '' ORDER BY id DESC LIMIT 或类似的东西