2017-11-30 2 views
0

このクエリはMySQLワークベンチでうまく動作しますが、PHPで実行すると正しく動作しません。このsqlクエリを分割して、ワークベンチと同じようにPHP上で実行できます

$q = "SELECT post_title, post_content FROM wp_posts p1 
     LEFT JOIN wp_postmeta wm1 ON (wm1.post_id = p1.id AND wm1.meta_value IS NOT NULL AND wm1.meta_key = "_thumbnail_id") 
     LEFT JOIN wp_postmeta wm2 ON (wm1.meta_value = wm2.post_id AND wm2.meta_key = "_wp_attached_file" AND wm2.meta_value IS NOT NULL) 
     WHERE p1.post_status="publish" AND p1.post_type="post" AND p1.ID in ('800','808', '569') 
     ORDER BY p1.post_date DESC"; 

    if ($result = $conn->query($q)) 
    { 
     while ($row = $result->fetch_assoc()) 
     { 
      // SHOW three specific posts 
      printf("Title: %s\r\n",$row['post_title']); echo "<br><hr>"; 
      printf("Content: %s\n",$row['post_content']); echo "<br><hr>"; 
+0

は、あなたが実行時に取得しているエラーを入力してくださいPHPによるコード –

+0

私は何も得られません! –

答えて

1

あなたは二重引用符を使用して文字列を作成しているので、あなたは、クエリ内の他のすべての二重引用符をエスケープする必要があります。

$q = "SELECT post_title, post_content FROM wp_posts p1 
     LEFT JOIN wp_postmeta wm1 ON (wm1.post_id = p1.id AND wm1.meta_value IS NOT NULL AND wm1.meta_key = \"_thumbnail_id\") 
     LEFT JOIN wp_postmeta wm2 ON (wm1.meta_value = wm2.post_id AND wm2.meta_key = \"_wp_attached_file\" AND wm2.meta_value IS NOT NULL) 
     WHERE p1.post_status=\"publish\" AND p1.post_type=\"post\" AND p1.ID in ('800','808', '569') 
     ORDER BY p1.post_date DESC"; 
関連する問題