使用php会话数组变量

时间:2017-07-03 16:56:05

标签: php mysql sql database

你好我使用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服务器版本相对应的手册,以获得正确的语法,以便按照“desc limit 10'”的顺序使用。在第9行的C:\ wamp64 \ www \ randomz.com \ functions \ getrep.php第1行

1 个答案:

答案 0 :(得分:0)

您似乎希望reparray累积您已在会话中收集的id值。但是当数组初始化为空数组时,SQL将具有以下条件:

IN ()

...这是无效的SQL语法。

你可以通过将虚拟值连接到数组来解决这个问题;表中永远不会出现的值。我们假设-1是这样的值。然后像这样添加+ [-1]

implode(',',$_SESSION['reparray'] + [-1])