Форум на ПЫХА.РУ

Форум на ПЫХА.РУ

PHP программирование => Базы данных => Тема начата: Asaf от 01 Август, 2007, 03:13:03



Название: Разьясните ошибку. (You have an error in your SQL syntax)
Отправлено: Asaf от 01 Август, 2007, 03:13:03
Вот ошибка: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '\'', 'client')' at line 1
Я вот только не пойму с какой строчки надо считать. Скорее всего ошибка в этой части:
       Уровень доступа: <select name=status>
       <option value="client">Клиент</option>
       <option value="painter">Художник</option>
       <option value="admin">Администратор</option>
       </select>


Название: Разьясните ошибку.
Отправлено: md5 от 01 Август, 2007, 03:33:24
ты приведи польностью код, скорее всего ты не заэкранировал двойную ковычку
у тебя
PHP
echo " .. <option value="client">Клиент</option> .. ";
???
 
тебе надо делать так:
PHP
echo " .. <option value=\"client\">Клиент</option> .. ";

или лучше так:
PHP
echo ' .. <option value="client">Клиент</option> .. ';


Название: Разьясните ошибку.
Отправлено: Asaf от 01 Август, 2007, 04:04:50
PHP
echo '<form method="POST">
Имя нового пользователя: <input type=text name=login><br />
Пароль нового пользователя: <input type=password name=pword[]><br />
Введите пароль еще раз: <input type=password name=pword[]><br />
Уровень доступа: <select name=status>
<option value="client">Клиент</option>
<option value="painter">Художник</option>
<option value="admin">Администратор</option>
</select><br />
<input type=submit name=new value="Добавить нового пользователя">
</form>'
;
Вот полный код.


Название: Разьясните ошибку.
Отправлено: md5 от 01 Август, 2007, 04:06:13
чё-то здесь не видно проблем...


Название: Разьясните ошибку.
Отправлено: Asaf от 01 Август, 2007, 04:23:26
Можете хотя бы обьяснить в чем суть ошибки? Я так понимаю проблема в кавычках? Написано, что проблема в первой строчке, откуда считать то? :)


Название: Разьясните ошибку.
Отправлено: md5 от 01 Август, 2007, 04:30:33
от начала файла


Название: Разьясните ошибку.
Отправлено: md5 от 01 Август, 2007, 04:35:42
You have an error in your SQL syntax;
где здесь SQL синтаксис?


Название: Разьясните ошибку.
Отправлено: ghost от 01 Август, 2007, 04:50:03
суть проблемы в том, что у тебя не выполняется запрос к базе данных
запрос к базе данных выглядит не так как html-код, и отношения к последнему не имеет
http://softtime.ru/bookphp/gl12_1.php


Название: Разьясните ошибку.
Отправлено: Asaf от 01 Август, 2007, 05:21:02
PHP
       if (!isset($_POST['new']))
       {
       echo '<form method="POST">
       Имя нового пользователя: <input type=text name=login><br />
       Пароль нового пользователя: <input type=password name=pword[]><br />
       Введите пароль еще раз: <input type=password name=pword[]><br />
       Уровень доступа: <select name=status>
       <option value="client">Клиент</option>
       <option value="painter">Художник</option>
       <option value="admin">Администратор</option>
       </select><br />
       <input type=submit name=new value="Добавить нового пользователя">
       </form>'
;
       }
       else
       {
       $sql3 = "insert into users (username, password, status) values ('".$_POST["name"]."',  \'".$passwords[0]."', '".$_POST["status"]."')";
       $result = mysql_query($sql3);
         if ($result)
         {
         echo "Пользователь добавлен.";
         }
         else
         {
         echo "Возникли проблемы: ".mysql_error();
         }
       }
Я не хотел сильно озадачивать людей, поэтому в первый раз выложил лишь ту часть, где считал проблемы в ошибке. Сейчас выложу все if.


Название: Разьясните ошибку.
Отправлено: md5 от 01 Август, 2007, 05:24:29
$sql3 = "insert into users (username, password, status) values ('".$_POST["name"]."',  \'".$passwords[0]."', '".$_POST["status"]."')";
выделил жырным
зачем экранировать?


Название: Разьясните ошибку.
Отправлено: md5 от 01 Август, 2007, 05:26:03
в догонку: http://phpfaq.ru/slashes


Название: Разьясните ошибку.
Отправлено: Asaf от 01 Август, 2007, 05:30:37
md5, умышленно я ничего не выделял. Наверное, получилось случайно.


Название: Разьясните ошибку.
Отправлено: md5 от 01 Август, 2007, 05:39:48
тфу ты блин
 
я те говорю, что я выделил жырным, где ошибка
\'".$passwords[0]."'

а надо без слеша
PHP
'".$passwords[0]."'


Название: Разьясните ошибку.
Отправлено: Asaf от 01 Август, 2007, 06:30:40
Да я уже исправил.Все равно спасибо :)


Название: Разьясните ошибку. (You have an error in your SQL syntax)
Отправлено: adw0rd от 10 Август, 2007, 01:22:14
$sql3 = "insert into users (username, password, status) values ('".$_POST["name"]."',  \'".$passwords[0]."', '".$_POST["status"]."')";

может так лучше:
 
Text
$sql3 = " INSERT INTO `users` SET `username` = '{$_POST['name']}', `password` = '{$passwords[0]}', `status` = '{$_POST['status']}' ";

 
md5: форматируйте код
ad3000: ОК :)


Название: Разьясните ошибку. (You have an error in your SQL syntax)
Отправлено: vasa_c от 10 Август, 2007, 03:17:18
чем?


Название: Разьясните ошибку. (You have an error in your SQL syntax)
Отправлено: adw0rd от 10 Август, 2007, 05:02:54

чем?

ИМХО удобнее, и читабельнее (особенно когда много переменных)


Название: Разьясните ошибку. (You have an error in your SQL syntax)
Отправлено: vasa_c от 10 Август, 2007, 05:25:05
Так же ИМХО читабельнее выносить переменные из строк, особенно в случае с элементами массива :)


Название: Разьясните ошибку. (You have an error in your SQL syntax)
Отправлено: Argnist от 11 Август, 2007, 09:24:51
в ПХП эсперт  едиторе не подсвечиваются переменные в строках echo "блаблабла$numблаблабла"; а вот в блокноте наверно удобнее)


Название: Разьясните ошибку. (You have an error in your SQL syntax)
Отправлено: Pasha от 11 Август, 2007, 10:33:11
echo <<<FORM
 
<input type="hidden" name="name">
<input type="hidden" name="text">
<input type="hidden" name="mail">
 
FORM;
 
И не надо париться с двойными кавычками


Форум на ПЫХА.РУ