php mysql INSERT ON DUPLICATE KEY UPDATE

zael

Новичок
вот таблица
PHP:
CREATE TABLE IF NOT EXISTS `bak_sites` (
  `url` varchar(255) collate utf8_unicode_ci NOT NULL default '' COMMENT 'урл сайта для имени файла',
  `kat_id` int(11) NOT NULL default '0',
  `kat` varchar(255) collate utf8_unicode_ci NOT NULL default '',
  `title` text collate utf8_unicode_ci NOT NULL,
  `image_position` varchar(30) collate utf8_unicode_ci NOT NULL default '',
  `meta` text collate utf8_unicode_ci NOT NULL,
  `yabek` int(11) NOT NULL default '0',
  `yain` int(11) NOT NULL default '0',
  `goobek` int(11) NOT NULL default '0',
  `gooin` int(11) NOT NULL default '0',
  `checked_out_time  datetime NOT NULL default '0000-00-00 00:00:00',
  `tic` int(11) NOT NULL default '0',
  `pr` int(11) NOT NULL default '0',
  `yapic` int(11) NOT NULL default '0',
  `goopic` int(11) NOT NULL default '0',
  `who` text collate utf8_unicode_ci NOT NULL,
  `uryk` varchar(250) character set utf8 NOT NULL default '',
  `shorttit` varchar(250) character set utf8 NOT NULL default '' COMMENT 'обрезаный титл',
  PRIMARY KEY  (`url`),
  KEY `kat_url` (`kat_id`,`url`),
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
вот запрос
PHP:
<?php

// Данные для mysql сервера
$dbhost = "xxx"; // Хост
$dbuser = "xxx"; // Имя пользователя
$dbpassword = "xxxxx"; // Пароль
$dbname = "gb_sits"; // Имя базы данных
$link = mysql_connect($dbhost, $dbuser, $dbpassword);// Подключаемся к mysql серверу
mysql_select_db($dbname, $link);// Выбираем нашу базу данных
$query ="INSERT INTO bak_sites (url,kat_id,kat,title,image_position,meta,yabek,yain,goobek,gooin,checked_out_time,tic,pr,yapic,goopic,who,uryk,shorttit) VALUES ($url,kat_id,kat,$tit,image_url,4545,,,,,,,,,,$uryk,$uryk,$shorttit)
  ON DUPLICATE KEY UPDATE kat_id=99,kat=5,title=$tit,image_position=888888,meta=888,yabek=8,yain=8,goobek=8,gooin=8,checked_out_time=0000-00-00 00:00:00,tic=8,yapic=8,goopic=9,who=$uryk,uryk=$uryk,shorttit=$shorttit";
echo mysql_error();
mysql_query($query, $link);
mysql_close($link);// Закрываем соединение
?>
 

zael

Новичок
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 - вот такая ошибка
 

Andkorol

Новичок
Выводим в браузер готовый запрос - и смотрим, что не так в области запроса, указанно в ошибке (use near '�аказать сайт недорого,интернет магазин под'):
PHP:
$query ="INSERT INTO bak_sites (url,kat_id,kat,title,image_position,meta,yabek,yain,goobek,gooin,checked_out_time,tic,pr,yapic,goopic,who,uryk,shorttit) 
VALUES ($url,kat_id,kat,$tit,image_url,4545,,,,,,,,,,$uryk,$uryk,$shorttit) 
ON DUPLICATE KEY UPDATE kat_id=99,kat=5,title=$tit,image_position=888888,meta=888,yabek=8,yain=8,goobek=8,gooin=8,checked_out_time=0000-00-00 00:00:00,tic=8,pr=8,yapic=8,goopic=9,who=$uryk,uryk=$uryk,shorttit=$shorttit";
echo $query;
Скорее всего - таки придется прочитать это, и сделать всё, как там написано...:)

PS: это, кстати, что у вас в запросе:
?
 
  • Like
Реакции: zael

Andkorol

Новичок
Супер.
Пустые поля - это две одинарные кавычки:
4545, '', '', '', '', ...
 
  • Like
Реакции: zael

zael

Новичок
спасибо, дорогой, не бросил, помог разобраться, все работает!!!
 
Сверху