2013-12-17 2 views
0

У меня есть следующий код: (PHP)Mysql PHP LIMIT 1 Ошибка

$alert = mysqli_query($con,"SELECT * FROM 'user_" . $row['id'] . "_notifications' LIMIT 1"); 

, который дает мне эту ошибку:

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 ''user_2_notifications' LIMIT 1' at line 1

пожалуйста, помогите мне исправить это.

+3

Не указывайте имена таблиц (или столбцов) с помощью '' '... если вам нужно их процитировать, используйте обратные обратные (') ... Символы цитирования (') предназначены для строковых литералов –

+0

Какой из них вам нужна помощь в исправлении? Часть, в которой вы используете данные в виде имен таблиц? Часть, в которой вы применяете LIMIT к запросу без указания ORDER BY, тем самым давая непредсказуемые результаты? Или синтаксическая ошибка? – symcbean

ответ

2

Избавиться от одинарных кавычек вокруг имени таблицы в запросе:

$alert = mysqli_query($con,"SELECT * FROM user_" . $row['id'] . "_notifications LIMIT 1"); 

Вам нужно только, чтобы избежать имен таблиц и имена столбцов, если они являются одним из MySQL Reserved Words. Эквивалентный символ в этом случае обращается к тику (`) не одинарной кавычки ('), как в вашем запросе.

+0

Или избегайте их следующим образом: '\' foo \ '' – Bell

+0

Спасибо! Это работало довольно хорошо. Я действительно нашел это во многих местах моего кода, и теперь я исправил его! –