繁体   English   中英

PDO准备陈述“哪里”问题

[英]PDO prepared statement 'where' issue

我是PDO新手,我正努力在准备好的语句中使用“ where”语句。 下面是我尝试的代码。 它返回无法从数据库检索数据。

谁能告诉我问题是什么? 有什么可以尝试的吗?

赞赏!

$user_id = 1;

try {
    $query = $db->prepare("
            SELECT title, img, id
            FROM listings
            ORDER BY id DESC
            WHERE userID = :user_id
            LIMIT 2");
$query->bindParam(':user_id', $user_id, PDO::PARAM_INT);
$query->execute();

} catch (Exception $e) {
    echo "Data could not be retrieved from the database.";
    exit;
} 

$data = $query->fetchAll( PDO::FETCH_ASSOC);

return $data;

更新:我交换了orderwhere子句,但它仍然不返回任何内容(与上一个错误消息相反)。

像这样重写您的查询。 [ 您需要在WHERE之后放置ORDER BY子句 ]

   $query = $db->prepare("
            SELECT title, img, id
            FROM listings
            WHERE userID = :user_id
            ORDER BY id DESC
            LIMIT 2");

where条件之后需要添加ORDER BY id DESC

$query = $db->prepare("
            SELECT title, img, id
            FROM listings               
            WHERE userID = :user_id
            ORDER BY id DESC
            LIMIT 2");

Mysql Generic Select语法:

   SELECT
    [ALL | DISTINCT | DISTINCTROW ]
      [HIGH_PRIORITY]
      [STRAIGHT_JOIN]
      [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
      [SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
    select_expr [, select_expr ...]
    [FROM table_references
    [WHERE where_condition]
    [GROUP BY {col_name | expr | position}
      [ASC | DESC], ... [WITH ROLLUP]]
    [HAVING where_condition]
    [ORDER BY {col_name | expr | position}
      [ASC | DESC], ...]
    [LIMIT {[offset,] row_count | row_count OFFSET offset}]
    [PROCEDURE procedure_name(argument_list)]
    [INTO OUTFILE 'file_name' export_options
      | INTO DUMPFILE 'file_name'
      | INTO var_name [, var_name]]
    [FOR UPDATE | LOCK IN SHARE MODE]]

where子句应该在order子句之前

$query = $db->prepare("
            SELECT title, img, id
            FROM listings
            WHERE userID = :user_id
            ORDER BY id DESC
            LIMIT 2");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM