Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Ввод данных в db

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Ошибки при вводе в db
Denand
Отправлено: 10 Марта, 2007 - 04:56:03
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Март 2007  


Помог: 0 раз(а)




Привет всем! Помогите устранить ошибку в коде, не могу записать в db!
Форма:
<form action="mmm.php" method="POST"><br><br>
<b>Текст </b><br>
<input type="text" name="name" > <br><br>
<input type="submit" value="Отправить ">
</form>


<?php
//Error_Reporting(E_ALL & ~E_NOTICE);

$host="localhost";
$user_db="qaz";
$pass_db="123";
$dbase="qaz";
$dtable="111";
if (!mysql_connect($host,$user_db,$pass_db)) {
echo "Ошибка подключения к серверу MySQL";} else {echo " достучались до сервера <br>n";}
mysql_select_db($dbase)or die("нет соединения с базой!<br>n");

$name = $_POST ["name"];

$sql = "INSERT INTO $dtable (name) VALUES ('$name') <br>n";

$result = mysql_query ( $sql )or die ('Invalid query: '.mysql_error());

//$result = mysql_query($sql) or die("Invalid query: " . mysql_error()) ;
if(!$result) { echo "Нет результатов! <br>n";} else{print ' <META HTTP - EQUIV="REFRESH" CONTENT="2; URL=fff.php"> ';
print "ЗАПИСАЛОСЬ!!!<BR>n";}
?>
достучались до сервера
Invalid query: 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 '111 (name) VALUES ('рьтстст')
' at line 1
 
 Top
ВуД
Отправлено: 10 Марта, 2007 - 13:47:33
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Март 2007  


Помог: 0 раз(а)




Цитата:
$sql = "INSERT INTO $dtable (name) VALUES ('$name') <br>n";


А что там делают html тяг с "n" в sql поле ?
 
 Top
Denand
Отправлено: 10 Марта, 2007 - 20:22:24
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Март 2007  


Помог: 0 раз(а)




Это не играет значения, ошибка запроса sql ! мне кажется что то с mysql_query, так как делал проверку на каждой строке - нет только $result!!! И неизменно выдает ошибку..
Invalid query: 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 '111 VALUES ('64645')' at line 1
 
 Top
evgenijj
Отправлено: 10 Марта, 2007 - 20:47:20
Post Id



Участник


Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006  
Откуда: Москва


Помог: 10 раз(а)




Denand пишет:
Это не играет значения, ошибка запроса sql ! мне кажется что то с mysql_query, так как делал проверку на каждой строке - нет только $result!!! И неизменно выдает ошибку..
Invalid query: 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 '111 VALUES ('64645')' at line 1

Как это не имеет значения! Попробуй из командной строки выполнить запрос
INSERT INTO mytable (name) VALUES ('somebody') <br>\n
и посмотри, что тебе ответит сервер.

Почему бы тебе не оформить запрос к БД более красочно:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.  $sql = "<span style='color:red; font-weight:bold'>INSERT INTO</span> $dtable (name) <span style='color:red; font-weight:bold'>VALUES</span> ('$name') <br />\\n";
  4. ?>
  5.  

MySQL это любит, и такие запросы обрабатывает быстрее Улыбка
 
 Top
Denand
Отправлено: 10 Марта, 2007 - 21:52:10
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Март 2007  


Помог: 0 раз(а)




Согласен, что тэги были лишнии.. evgenijj я не это имел ввиду!!!!(код и без них не работает)
Вопрос вот в чем: не будь этих тэгов правен ли код!?.. ведь правильный!!!!!!! но, в чем парадокс.. не работает код! Хорошо не пишет в базу.. выдает ошибку.
кто шарит в этом помогите! запарился уже путем втыка решать задачу.. нужно пояснение.
 
 Top
evgenijj
Отправлено: 10 Марта, 2007 - 22:41:32
Post Id



Участник


Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006  
Откуда: Москва


Помог: 10 раз(а)




Denand пишет:
Согласен, что тэги были лишнии.. evgenijj я не это имел ввиду!!!!(код и без них не работает)
Вопрос вот в чем: не будь этих тэгов правен ли код!?.. ведь правильный!!!!!!! но, в чем парадокс.. не работает код! Хорошо не пишет в базу.. выдает ошибку.
кто шарит в этом помогите! запарился уже путем втыка решать задачу.. нужно пояснение.

На первый взгляд все правильно
PHP:
скопировать код в буфер обмена
  1.  
  2. <form action="mmm.php" method="POST"><br /><b>Текст </b><input type="text" name="name" > <br /><input type="submit" value="Отправить ">
  3. </form>
  4.  
  5. <?PHP
  6. $host="localhost";
  7. $user_db="qaz";
  8. $pass_db="123";
  9. $dbase="qaz";
  10. $dtable="111";
  11.  
  12. if (!mysql_connect($host,$user_db,$pass_db))
  13.         echo "Ошибка подключения к серверу MySQL";
  14. else
  15.         echo " Достучались до сервера";
  16.  
  17. if ( !mysql_select_db($dbase) ) die("В настоящий момент база данных не доступна");
  18.  
  19. $name = $_POST ["name"];
  20.  
  21. $sql = "INSERT INTO `".$dtable."` (name) VALUES ('".mysql_escape_string($name)."')";
  22.  
  23. if ( mysql_query ( $sql ) )
  24. {
  25.         print "ЗАПИСАЛОСЬ!!!<BR>";
  26.         print '<META HTTP - EQUIV="REFRESH" CONTENT="2; URL=fff.php">';
  27. }
  28. else
  29. {
  30.         echo "<p >Error ".mysql_errno()." ".mysql_error()."</p >";
  31. }
  32. ?>
  33.  

Только имя таблицы надо заключить в обратные кавычки `111`. Что же ты имя-то для таблицы такое экзотическое выбрал?
 
 Top
Denand
Отправлено: 11 Марта, 2007 - 05:15:44
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Март 2007  


Помог: 0 раз(а)




Закатив глазки Ну на конец-то!!! общими усилиями... спасибо evgenijj
по поводу экзотики - это так эксперемент версия! я переделал имя. вот как все осталось и начало работать:
$sql = "INSERT INTO $dtable (msg) VALUES ('$msg') "; = такой вариант РАБОЧИЙ!!!!Хорошо
 
 Top
evgenijj
Отправлено: 11 Марта, 2007 - 10:23:13
Post Id



Участник


Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006  
Откуда: Москва


Помог: 10 раз(а)




Denand пишет:

по поводу экзотики - это так эксперемент версия! я переделал имя. вот как все осталось и начало работать

Это называется - искать себе на ... приключения. Сначала в качестве имени таблицы (или поля таблицы) использовать что-нибудь экзотическое (типа числа или ключевого слова SQL), а потом часами искать ошибку.
http://forum.php.su/topic.php?fo...=28&topic=12

В любом языке программирования нельзя использовать в качестве переменных ключевые слова. Имя переменной может содержать буквы, цифры и символ подчеркивания "_", но начинаться должно с буквы или "_"
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB