2010-01-28 3 views
0

Почему вы используете {} вокруг переменных в следующей инструкции sql?Почему у вас есть {} вокруг переменных в инструкции sql?

SELECT 
FROM users 
WHERE username = '{$_POST['user']}' 
+0

Какой диалект SQL вы используете? – Bear

+0

Это перл или рубин? – vava

+2

Это похоже на параметр (пользователь поля, входящий в веб-форму) в PHP? Где-то в коде параметр обновляется, потому что указанный выше синтаксис вряд ли будет запущен в SQL – Sparky

ответ

5

Предполагаю, что вы используете SQL из языка PHP.

Этот синтаксис с {} используется для интерполяции элементов массива, встроенных в строку с кавычками.

Например, составляя следующую строку:

"Good morning {$_POST['user']} !" 

будет компилировать выход со значением переменной (элемента массива) разыменовываются, например:

"Good morning noname !" 

SQL запросов в PHP состоят из строки, поэтому этот синтаксис {} используется довольно часто.

Ссылка: Variable parsing - complex syntax PHP4+

P.S. Это всегда хорошая идея, чтобы предоставить как можно больше деталей в вашем вопросе.

+0

, но can not u just type echo "Доброе утро $ _POST ['user']!". Я думаю, что раньше я это пробовал. – ajsie

+0

Да, вы не можете этого сделать. Вот почему необходимы дополнительные {}. Проверьте раздел разбора переменных в ссылке, связанной с моим ответом. Вы найдете объяснение так называемого сложного синтаксиса с некоторыми примерами. Просто используйте фигурные скобки, чтобы устранить любую потенциальную двусмысленность при анализе переменных, встроенных в строки. – mloskot

+0

+1 для психических сил. –

1

вы можете использовать двойные кавычки, но не с одинарными кавычками. вопрос использует одинарные кавычки, поэтому я не уверен, что он находится в PHP. (Mabee был misstyped на вопрос)

так

if $_POST['user'] = "fred"; 

"Good morning {$_POST['user']} !" 

переводится как Доброе утро Фреда!

но

'Good morning {$_POST['user']} !' 

переводится как Доброе утро {$ _POST [ 'пользователя']}!

Смежные вопросы