你好,这里是我的MySQL查询,其中一个获取数据......
$videofetch = $conn->prepare("select * from user_followers as uf join videos as v on uf.followed_id = v.publisher_id where uf.follower_id = ? order by video_id desc limit 5");
$videofetch->execute(array(@$_SESSION ["userid"]));
$vid = $videofetch->fetchALL(PDO::FETCH_ASSOC);
这段代码工作正常,但是当我试图用AJAX获取更多数据时,我无法编写正确的sql查询语法。
<?php
session_start();
if(isset($_POST["id"]) && !empty($_POST["id"])) {
include('connectdb.php');
$lastID = $_POST['id'];
$videofetch = $conn->prepare("select * from user_followers as uf join videos as v on uf.followed_id = v.publisher_id where uf.follower_id = ? order by video_id desc limit 5");
$videofetch->execute(array($_SESSION["userid"]));
$vid = $videofetch->fetchALL(PDO::FETCH_ASSOC);
...
我想添加WHERE video_id < ".$lastID."
..我尝试了几种组合,但每次都显示语法错误。
注意:
1-我从AJAX获取数据到$lastID
;
2- $_SESSION ["userid"]
有效,不用担心这个
3-SQL错误是:
致命错误:未捕获PDOException:SQLSTATE [42000]:语法错误或 访问冲突:1064您的SQL语法有错误;检查 手册,对应右边的MySQL服务器版本 在uf.followed_id = v.publisher_id其中使用附近&#39;作为v的语法 uf.follower_id =&#39; 1&#39;通过vid排序&#39;在第1行 第9行的C:\ wamp64 \ www \ hola.com \ functions \ getdatafoll.php
答案 0 :(得分:1)
尝试使用你的mysql关键字。它的阅读要好得多。
你已经有了一个WHERE,所以你只需要将它与一个AND结合起来。
SELECT *
FROM user_followers AS uf
JOIN videos AS v ON uf.followed_id = v.publisher_id
WHERE uf.follower_id = ?
AND video_id < ".$lastID."
ORDER BY video_id DESC
LIMIT 5
但改变了&#39; &#34; $ lastID&#34;准备好了。