【发布时间】:2017-07-03 16:56:05
【问题描述】:
您好,我在使用 PHP 时遇到 SQL 语法错误,我的代码是
$_SESSION['reparray']=array();
$com = $conn->prepare("select * from replies where rep_com_id=? AND rep_id NOT IN(".implode(',',$_SESSION['reparray']).") order by likes desc limit 10");
$com->execute(array($_POST['id']));
$fetchcom = $com->fetchAll();
foreach ($fetchcom as $com_column ){
array_push($_SESSION['reparray'], $com_column['rep_id'] );
我在其他页面中使用相同的代码,只是使用不同的变量,它工作正常,但在这里我收到这样的错误:
PDOException: SQLSTATE[42000]: 语法错误或访问冲突:1064 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册以获取正确的语法,以便在第 9 行的 C:\wamp64\www\randomz.com\functions\getrep.php 的第 1 行中的 ') order by likes desc limit 10' 附近使用/p>
【问题讨论】:
-
如果您在查询之前设置数组,则该数组为空,
IN语句也将为空。 -
如有疑问,
echo/var_dump()/print_r()是您的朋友。 -
我尝试手动在数组中添加值,是的,它没有显示任何错误,但获取相同的 cmets 超过 1 次..
-
是的@Mike 我试过了,它的 olride,array_push 工作正常
-
"但获取相同的 cmets 超过 1 次" - 这些 cmets 是否已多次使用相同的文本和不同的评论 ID 发布?