Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Функция не работает
 
 автор: alexander95   (17.03.2011 в 18:49)   письмо автору
 
 


<?
function del_ins($txt){ 
    
$pattern "|ll=([^,]+),([^&]+)&.+?&z=(\d+)|";  
    
preg_match($pattern$txt$out);  
    unset(
$out[0]);
    
mysql_query("INSERT INTO std(user,coord1,coord2,zoom) VALUES('".$_COOKIE['user']."',".$out[1].",".$out[2].",".$out[3].");") or die(mysql_error());
}
?>


И никак не хочет работать. Говорит про ошибку в синтаксисе.

  Ответить  
 
 автор: alexander95   (17.03.2011 в 19:00)   письмо автору
 
   для: alexander95   (17.03.2011 в 18:49)
 

user: tinytext
coord1; coord2:float
zoom:tinyint

  Ответить  
 
 автор: cheops   (17.03.2011 в 19:17)   письмо автору
 
   для: alexander95   (17.03.2011 в 18:49)
 

1) А как точно сообщение об ошибке выглядит?
2) Если не сложно выведите запрос в окно браузера, как он выглядит после подстановки всех переменных?

  Ответить  
 
 автор: alexander95   (17.03.2011 в 20:21)   письмо автору
 
   для: cheops   (17.03.2011 в 19:17)
 

Извиняюсь.

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 'std(user,coord1,coord2,zoom) VALUES('qwerty',55.354135,40.297852,4)' at line 1

Запрос: INSERT INTO std(user,coord1,coord2,zoom) VALUES('pavel',55.354135,40.297852,4);

  Ответить  
 
 автор: cheops   (17.03.2011 в 20:24)   письмо автору
 
   для: alexander95   (17.03.2011 в 20:21)
 

Скорее всего, анализатору не нравятся std и user, поместите от греха все имена таблиц и столбцов в обратные кавычки
<?php
  
...
  
$query "INSERT INTO `std`(`user`,`coord1`,`coord2`,`zoom`)
                 VALUES('"
.$_COOKIE['user']."',".$out[1].",".$out[2].",".$out[3].");";
  
mysql_query($query) or die(mysql_error());
  ...
?>

  Ответить  
 
 автор: alexander95   (17.03.2011 в 20:30)   письмо автору
 
   для: cheops   (17.03.2011 в 20:24)
 

сходит с ума...:

Notice: Undefined offset: 1 in Z:\home\site.ru\www\func.php on line 30

Notice: Undefined offset: 2 in Z:\home\site.ru\www\func.php on line 30

Notice: Undefined offset: 3 in Z:\home\site.ru\www\func.php on line 30
INSERT INTO `std` (`user`,`coord1`,`coord2`,`zoom`) VALUES('pavel',,,);
Notice: Undefined offset: 1 in Z:\home\site.ru\www\func.php on line 31

Notice: Undefined offset: 2 in Z:\home\site.ru\www\func.php on line 31

Notice: Undefined offset: 3 in Z:\home\site.ru\www\func.php on line 31
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 ',)' at line 1

на строке 31, если что, return 1;
а на 30 сам запрос.

  Ответить  
 
 автор: alexander95   (17.03.2011 в 20:38)   письмо автору
 
   для: alexander95   (17.03.2011 в 20:30)
 

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

  Ответить  
 
 автор: cheops   (17.03.2011 в 20:40)   письмо автору
 
   для: alexander95   (17.03.2011 в 20:38)
 

Поставьте проверку на то, сработало регулярное выражение или нет
<?php
function del_ins($txt){  
    
$pattern "|ll=([^,]+),([^&]+)&.+?&z=(\d+)|";   
    if(
preg_match($pattern$txt$out))
    {
      unset(
$out[0]); 
      
$query "INSERT INTO `std`(`user`,`coord1`,`coord2`,`zoom`) 
                   VALUES('"
.$_COOKIE['user']."',".$out[1].",".$out[2].",".$out[3].");";
      
mysql_query($query) or die(mysql_error()); 
    }
  }
?>

  Ответить  
 
 автор: cheops   (17.03.2011 в 20:38)   письмо автору
 
   для: alexander95   (17.03.2011 в 20:30)
 

Он у вас массив почему-то перестал $out видеть, т.е. регулярное выражение не срабатывает.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования