$sql = "SELECT email FROM family WHERE family = '$family'";
$result = mysql_query($sqll)or die(mysql_error());
Это правильный способ получить переменную php в запросе mysql?Mysql fetch PHP переменная
$sql = "SELECT email FROM family WHERE family = '$family'";
$result = mysql_query($sqll)or die(mysql_error());
Это правильный способ получить переменную php в запросе mysql?Mysql fetch PHP переменная
Это могло бы сработать. Однако он уязвим для SQL injection.
Это безопаснее:
$sql = sprintf("SELECT email FROM family WHERE family = '%s'",
mysql_real_escape_string($family));
$result = mysql_query($sql);
От моего знания наилучшим образом использовать, как это:
если $ семья не строка
$sql = "SELECT email FROM family WHERE family = ".$family;
если есть сравнение строк, то
$sql = "SELECT email FROM family WHERE family = '".$family."'";
В любом случае это серьезно опасно, если не подчеркнуть санирующие входы. Действительно, хотя разработчику не нужно беспокоиться об этом, просто положите? в его месте и использовать связанные параметры или PDO. – atxdba
Как это отличается от того, что он уже делает? – Mischa
SQL-инъекция! – gahooa
Код имеет тип ошибки
$sqll
не является defined.it должен быть $result = mysql_query($sql)
.
Я считаю, что это причина, вы ищете ... (так как этот вопрос является слишком расплывчатым, который, вероятно, потому, что вы получили сообщение об ошибке, что вы не могли отслеживать)
'$ family =" 'ИЛИ (DROP DATABASE foo) ИЛИ' '' – gahooa
Я думал о троллинге для голосов/статуса после просмотра http://stackoverflow.com/questions/60174/best-way-to-stop- sql-injection-in-php на первой странице тоже. – atxdba