<?php
include("db.php");
$name=$_REQUEST['name'];
$mail=$_REQUEST['email'];
$yname=$_REQUEST['yname'];
$result=mysql_query("SELECT * FROM information WHERE uname = '$name' ");
if (mysql_num_rows($result) == 0) {
$query=mysql_query("INSERT into noresult (Serial,searchname,yourname,email)
VALUES ('',$name','$yname','$mail')");
if ($query){
header('Location:nullresult.php');
}
else{
echo "Query failure";
}
}
?>
Это возвращает «Ошибка запроса». Он работал когда-то с табличным именем «ищущий». Затем я отбросил его и создал новую таблицу «noresult», поскольку предыдущая была немного испорчена. Внезапно запрос завершается с ошибкой.Запрос MySQL не исполняется
Примечание: Искатели и нерезиденты имеют одинаковые столбцы.
** При создании операторов SQL с внешними переменными вы остаетесь открытыми для атак SQL-инъекций. ** Кроме того, любые входные данные с одинарными кавычками в нем, такие как имя «O'Malley», взорвут ваши SQL-запрос. Пожалуйста, узнайте об использовании параметризованных запросов, желательно с модулем PDO, для защиты вашего веб-приложения. [Этот вопрос] (http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php) содержит много примеров. Вы также можете увидеть http://bobby-tables.com/php для альтернатив и объяснения опасности. –
Спасибо. Не знал об этом. В качестве новичка моя главная цель заключалась в том, чтобы увидеть, могу ли я реализовать определенные вещи. Позаботится о проблемах в следующий раз. –
Другое большое преимущество использования подготовленных операторов состоит в том, что вы не сталкиваетесь с проблемами с котировками, с которыми вы столкнулись выше. –