[英]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;
更新:我交换了order
& where
子句,但它仍然不返回任何内容(与上一个错误消息相反)。
像这样重写您的查询。 [ 您需要在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.