Причина, почему ваш код не работает
Вы пытаетесь использовать переменную, $info
, который не был определен. Когда вы пытаетесь использовать неопределенную переменную, вы фактически ничего не связываете с какой-либо строкой, однако, поскольку PHP свободно набирается, он объявляет переменную вторым, ссылающимся на нее. Вот почему вы видите notice
, а не fatal error
. Вы должны пройти через свой код и убедиться, что $info
получает назначенное ему значение и что он не перезаписывается в какой-то момент другой функцией. Однако, что более важно, читайте ниже.
Стоп, что вы делаете
Это уязвима к типу атаки называется SQL Injection. Я не собираюсь рассказывать вам, как объединить строки SQL. Это ужасная практика.
Вы должны NOT использовать функции mysql в PHP. Они устарели. Вместо этого используйте PHP PDO Object с подготовленными операторами. Вот довольно хороший tutorial.
Пример
После прочтения this tutorial, вы будете в состоянии сделать PDO объекта, поэтому я оставлю это немного для вас.
Следующим этапом является добавление запрос, используя prepare
метод:
$PDO->prepare("SELECT * FROM tbl WHERE `id` = :id");
// Loads up the SQL statement. Notice the :id bit.
$actualID = "this is an ID";
$PDO->bindParam(':id', $actualID);
// Bind the value to the parameter in the SQL String.
$PDO->execute();
// This will run the SQL Query for you.
Нет ваша ошибка о недостающей переменной $ Информация по линии 18, а не ваш запрос. Также НЕ используйте mysql_ * AND DO, чтобы избежать вашего запроса, у вас даже нет котировок вокруг ввода. – jtheman
Кажется, эта ошибка не связана с этой строкой. –
'mysql_query' - устаревшая функция. Вы должны посмотреть на MySQLi или PDO_MySQL. См. Http://php.net/manual/en/function.mysql-query.php – harryg