2017-07-03 23 views
-4

こんにちは、私はPHPを使用して、SQL構文エラーが、私のコードはここに私はそのが正常に動作し、私は他のページでちょうど異なる変数と同じコードを使用していますSQL構文を使用してPHPのセッションの配列変数

 $_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サーバのバージョンに対応するマニュアルをチェックして、適切な構文を使用して、 'like likes desc limit 10'をC:\ wamp64 \ www \ randomz.com \ functions \ getrep.phpの9行目の1行目で使用してください。

+6

クエリの直前に配列を設定している場合、空であり、 'IN'ステートメントも空になります。 –

+0

疑問がある場合、 'echo' /' var_dump() '/' print_r() 'はお友達です。 – Mike

+0

配列内の値を手作業で追加しようとしました。エラーは表示されませんが、同じコメントを1回以上フェッチしています。 –

答えて

0

reparrayには、すでにセッションで収集した値idが累積されているように見えます。しかし、配列が空の配列として初期化されると、SQLは次の条件を持ちます。

IN() 

...無効なSQL構文です。

ダミーの値を連結して解決できます。あなたのテーブルで決して発生しない値。 -1がそのような値であるとしましょう。

+0

私は試してみましたが、私に何かエロスは見せてくれませんでしたが、同じコメントをもう一度取りました。 –

+0

私はさまざまな変数を使って、同じSQLクエリーを持っています。その動作は上手です。PHPのmax_sessionの制限は何ですか?私は知らない、 –

+0

しかし、 "同じコメントを取得する"は別の質問です。あなたの質問には "私はSQL構文エラーがあります..."と書かれていますが、タイトルには "SQL構文"があります。今あなたはエラーがないことを私に伝えています。だからあなたの質問は、解決されたエラーについてですか? – trincot

関連する問題