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

Форум PHP

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

 

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

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

тема: Ошибка при попытке перезаписать поле базы
 
 автор: Blizard   (19.12.2011 в 11:50)   письмо автору
 
 

php скрипт с помощью file_get_contents() получает кол-во проиндексированных страниц гуглом, пример приводить не буду, но получает число, которое привожу к типу integer, дальше пытаюсь перезаписать БД и получаю ошибку:

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 'index=16 WHERE domen=domen.ru' at line 1

вот код:


$index = trim(getGoogleIdx($site));
if (!$index) $index=0;
$index = (int)$index;

$result = mysql_query("UPDATE mybase SET index=".$index." WHERE domen=".$site) or die(mysql_error());


В чем может быть ошибка? index = int, domen = text

  Ответить  
 
 автор: Valick   (19.12.2011 в 13:25)   письмо автору
 
   для: Blizard   (19.12.2011 в 11:50)
 

выносите запрос в отдельную переменную, тогда легко можно применить echo , для проверки коррестности запроса.
<?php
echo $query="UPDATE mybase SET `index`= $index  WHERE `domen`= '$site' ";
$result mysql_query() or die(mysql_error()); 
?>

  Ответить  
 
 автор: Slo_Nik   (19.12.2011 в 18:07)   письмо автору
 
   для: Blizard   (19.12.2011 в 11:50)
 

полезно ещё выводить и код ошибки mysql через mysql_errno.
проверьте все кавычки, скорей всего в них причина ошибки.
имена таблицы и полей таблицы заключайте в обратные кавычки, данные в одинарные...

  Ответить  
 
 автор: Valick   (19.12.2011 в 19:21)   письмо автору
 
   для: Slo_Nik   (19.12.2011 в 18:07)
 

данные в одинарные...
и числа тоже?

  Ответить  
 
 автор: Slo_Nik   (19.12.2011 в 21:09)   письмо автору
 
   для: Valick   (19.12.2011 в 19:21)
 

можно и числа

  Ответить  
 
 автор: cheops   (19.12.2011 в 21:16)   письмо автору
 
   для: Slo_Nik   (19.12.2011 в 21:09)
 

В скорости потеряете (на преобразовании)... кроме того, в ряде случаев могут перестать работать индексы. Тут еще более радикальное решение предлагали, просто кодировать все данные в PHP при помощи bin2hex(), а потом раскодировать их в MySQL при помощи функции UNHEX(). Оно конечно снимает с повестки дня манипулирование кавычками, зато потеря в скорости колоссальная.

  Ответить  
 
 автор: Slo_Nik   (19.12.2011 в 21:58)   письмо автору
 
   для: cheops   (19.12.2011 в 21:16)
 

а как же тогда быть если использовать запросы, обработанные при помощи sprintf()?

<?php 
$query 
sprintf("INSERT INTO `table` (`first`, `second`) VALUES('%s','%s')"$first$second);
?>

  Ответить  
 
 автор: cheops   (19.12.2011 в 22:31)   письмо автору
 
   для: Slo_Nik   (19.12.2011 в 21:58)
 

Быть с чем? SQL-инъекции это вроде как не отменяет...

  Ответить  
 
 автор: Sfinks   (19.12.2011 в 19:17)   письмо автору
 
   для: Blizard   (19.12.2011 в 11:50)
 

> В чем может быть ошибка? index = int, domen = text
вот в этом и ошибка. В том что domen = text, а .......WHERE domen=".$site и $site не в кавычках

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

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