2015-04-18 2 views
-3

Мне интересно, как безопасно или правильно передать переменную $ в запрос. Я новичок в PHP, поэтому я задаю такой вопрос для начинающих. Вот пример один и два, какой из них правильный и безопасный из-за символов?

Пример один:

//here is the line I am asking about. The $identification 
$query = "SELECT * FROM `members` WHERE `username` = '$identification' LIMIT 1"; 

Пример два:

//here is the line I am asking about. The $identification 
$query = "SELECT * FROM `members` WHERE `username` = '" . $identification . "' LIMIT 1"; 

Мне не нужны ответы на вопросы о PHP 4 или 5 или PDO. Мне просто нужно знать, что это правильно:

Это

'" . $identification . "' 

Или это

'$identification' 
+0

HTTP: // PHP .net/manual/en/mysqli-stmt.bind-param.php – Alex

+0

Не удается запустить php 5 на моем хостинг-провайдере – nonoyesyes

+0

Не могу поверить, какая у вас версия php? и кто ваш хостинг-провайдер? – Alex

ответ

0

Как насчет

$query = 
"SELECT * FROM `members` WHERE `username` = '" . 
mysql_escape_string($identification) . 
"' LIMIT 1"; 

http://php.net/manual/en/function.mysql-escape-string.php

Однако mysql_escape_string устарел. Если вы можете, вы должны использовать mysql_real_escape_string

http://php.net/manual/en/function.mysql-real-escape-string.php

+0

Php не рекомендовал: «Это расширение устарело от PHP 5.5.0 и будет удалено в будущем, необходимо использовать расширение MySQLi или PDO_MySQL. » – Krycke

+0

@ Krycke, я знаю, но OP заявил, что он не может использовать> PHP 5 – AmmarCSE

+0

Хорошо, но если он может использовать версию PHP> = 4.3, то mysql_real_escape_string следует использовать как минимум. – Krycke

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