przeszukałem internet i znalazłem wiele wątków dotyczących problemu z błędem składni, #1064.
Ten jest jednak inny.
Mam zapytanie:
INSERT INTO `handel_kup` (`id`, `kto`, `co`, `ile`, `cena`, `time`) VALUES (handel_id(1002, 4, 388), 1002, 4, 1, 4, 388), (handel_id(1002, 20, 388), 1002, 20, 1, 5, 388) ON DUPLICATE KEY UPDATE `ile`=`ile`+VALUES(`ile`), `cena`=`cena`+VALUES(`cena`)
które wykonuję z polecenia:
echo "\n<u style=\"color: red; background: pink\"><b>Error #" . mysql_errno() . ":</b>\n" . mysql_error() . "</u>\n";
na ekranie pojawia mi się napis:
INSERT INTO `handel_kup` (`id`, `kto`, `co`, `ile`, `cena`, `time`) VALUES
(handel_id(1002, 4, 388), 1002, 4, 1, 4, 388),
(handel_id(1002, 20, 388), 1002, 20, 1, 5, 388)
ON DUPLICATE KEY UPDATE `ile`=`ile`+VALUES(`ile`), `cena`=`cena`+VALUES(`cena`)
Error #1064:
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 3
no ok. jest jakiś błąd.
Kopiuje polecenie i wklejam do phpmyadmin.
Tam, to samo polecenie, działa bez zarzutu.
Jak to możliwe?
Czemu to samo polecenie działa w phpmyadmin, a nie działa ze stronki?
proszę o pomoc
używam
Apache/2.4.3 (Win32) OpenSSL/1.0.1c PHP/5.4.7
Wersja klienta bazy danych: libmysql - mysqlnd 5.0.10 - 20111026
PS
jeżeli obetnę ostatnią linijkę i zostawię
INSERT INTO `handel_kup` (`id`, `kto`, `co`, `ile`, `cena`, `time`) VALUES (handel_id(1002, 4, 388), 1002, 4, 1, 4, 388), (handel_id(1002, 20, 388), 1002, 20, 1, 5, 388)
czyli bez
ON DUPLICATE KEY UPDATE `ile`=`ile`+VALUES(`ile`), `cena`=`cena`+VALUES(`cena`)
działa... no ale nie o to chodzi.
aktualizacja:
EUREKA!!!!
ZNALAZŁEM BŁĄD!!!
otóż tworząc zmienną $polecenie używałem m.in.:
nie wiem czemu, ale ten sposób na ucięcie ostatniego elementu stringu gryzie się z poleceniem mysql.
Jeżeli zamiast niego użyję
wtedy wszystko działa!
w phpmyadmin mi polecenie działało, gdyż przekopiowałem tekst i go wklejałem.
widocznie skopiowany tekst to coś innego niż string $polecenie z tym samym tekstem, lecz z wartościami z NULL... ktoś mi jest w stanie wytłumaczyć dlaczego?

pozdr.!