2013-02-10 3 views
0

я следующий код:Wordpress база - У Вас есть ошибка в вашем SQL синтаксиса

<?php 

     $exists_photos = $wpdb->get_results("SELECT * FROM $dsp_galleries_photos galleries, $dsp_user_albums_table albums WHERE galleries.album_id=albums.album_id AND galleries.status_id=1 AND galleries.album_id IN ($ids1) ORDER BY RAND() LIMIT 6"); 

     $i=0; 

     foreach ($exists_photos as $user_photos) { 

      $photo_id=$user_photos->gal_photo_id; 

      $album_id1=$user_photos->album_id; 

      $file_name=$user_photos->image_name; 

      $private=$user_photos->private_album; 

      $image_path="/wp-content/uploads/dsp_media/user_photos/user_".$member_id."/album_".$album_id1."/".$file_name; 

      if(($i%3)==0){ 

      ?> 

Это возвращает следующее сообщение об ошибке:

WordPress database error You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1 for query SELECT COUNT(*) FROM wp_dsp_galleries_photos WHERE status_id=1 AND album_id IN() made by require('wp-blog-header.php'), require_once('wp-includes/template-loader.php'), include('/themes/ArtSee/page.php'), the_content, apply_filters('the_content'), call_user_func_array, do_shortcode, preg_replace_callback, do_shortcode_tag, call_user_func, wp_include_file, include('/plugins/dsp/profile_header.php'), include('/plugins/dsp/member_dsp_header.php'), include('/plugins/dsp/headers/view_profile_header.php'), include('/plugins/dsp/view_profile_setup.php') 

Предложения будут оценены. Благодаря

ответ

-1
SELECT * FROM $dsp_galleries_photos galleries, $dsp_user_albums_table albums 

должен быть

SELECT * FROM dsp_galleries_photos galleries, dsp_user_albums_table albums 

с не $ перед именем таблицы - вы должны также рассмотреть, если вам действительно нужно выбрать *, но это не влияет на синтаксис запроса

+0

Это переменные PHP. Если вы посмотрите на ошибку, вы увидите, что перед выполнением SQL они преобразуются в правильные имена таблиц, т. Е. 'Wp_dsp_galleries_photos'. Это не ошибка. –

+0

Мне всегда учили, что вам нужно избегать $ знаков в именах таблиц, поэтому это должно было бы быть что-то вроде SELECT * FROM '$ dsp_galleries_photos' галерей, или это была опечатка со стороны плаката - моя ошибка – bhttoan

+0

Также код что на самом деле не содержит код, показанный в ошибке, который был другой причиной, по которой я прыгнул на имя таблицы – bhttoan

0

Вы пропустили ЗНАЧЕНИЯ ВНУТРИ ():

SELECT COUNT(*) FROM wp_dsp_galleries_photos WHERE status_id=1 AND album_id IN() 

оператор: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' указывает точку отказа. Я отношусь ко второму ) в:

... album_id IN() ... 

В любом случае ваш код не показывать эту часть.

+0

NomikOS, спасибо , Я немного потерял. Это ... album_id IN ($ ids1) not .album_id IN() – user2059062