2013-03-30 3 views
-1

Ниже MySql запросов:Синтаксическая ошибка в MySql с помощью подзапросов

$queryfilter = "SELECT * FROM tablename where sector = " .$_SESSION['idfilterdrop']. " AND 
region IN (SELECT region from 
    tablename where sector = " . $_SESSION['sector'] ." OR region = " . 
$_SESSION['r1'] ." OR theme = " . $_SESSION['theme'] .")"; 

Помогите найти ошибку синтаксиса. Я уверен, что существует проблема двойных кавычек в вышеуказанном запросе. Когда я запускаю этот запрос в приглашении MySql, он работает нормально, но когда я заменяю значение константы переменными, этот запрос не работает.

+0

Это помогло бы много, чтобы увидеть фактические ошибки вы получаете. – jwueller

+0

Использовать [tag: pdo] вместо этого? – hjpotter92

+0

Могу ли я иметь имя таблицы в качестве базы данных? –

ответ

0

К сожалению, мы не знаем, содержит ли массив $_SESSION целые числа или строки. если элементы sector, r1 или theme являются строками, вам необходимо указать их в вашем SQL, например: WHERE sector = '". $_SESSION['sector'] . "' OR.

Кроме того, ваш стол, названный database, не помогает. Если я правильно помню, DATABASE зарезервированное слово, так что вам нужно поставить backtics вокруг этого имени таблицы:

... FROM `database` ... 
Смежные вопросы