Не работает в PHP+MySQL, хотя работает в консоли (Решено)
точка с запятой точно нужна?
(NULL, 3, 4);):
оставь из этого
(NULL, 3, 4)
Но после удаления артефактов ситуация не изменилась ;( До сих пор та же странная ошибка near '' at line 3
точка с запятой - конец запроса...обычно так - только в консоле
удаления точки запятой, не изменило ситуацию... Может ли влиять форматирование (лишние пробелы и табуляция) на запрос? т.к. значения (NULL, 1, 6 (NULL, 2, 3 генерируются при помощи РНР.
еще как может, недавно боролся с такой проблемой - невидимый символ в запросе.
$in_node_pare - массив одномерный с числами типа 104, 203...
foreach($in_node_pare as $v){
$l = floor($v/100);
$r = $v - ($l*100);
$str.=", (NULL, $l, $r)";
}
$str[0] = "";
$str[1] = "";
mysql_query("INSERT IGNORE INTO topology_node_pare
(`id`, `left_key`, `right_key`)
VALUES".$str);
Сообщение удалил
$str[0] - обращение к первому символу строки
При замене первого символа на пробел все заработало!
Всем спасибо за внимание.
Оставить комментарий
Niy1982
Один и тот-же запрос не работает из РНР, хотя работает в MySQL из консоли.MySQL Server version: 5.1.54-1ubuntu4 (Ubuntu)
PHP Version 5.3.5-1ubuntu7.2
В винде та же ситуация...
В консоли
mysql> INSERT IGNORE INTO topology_node_pare
-> (`id`, `left_key`, `right_key`)
-> VALUES(NULL, 1, 6 (NULL, 2, 3 (NULL, 4, 5 (NULL, 1, 8 (NULL, 2, 5 (NULL, 6, 7 (NULL, 3, 4);
Query OK, 6 rows affected (0.15 sec)
Records: 7 Duplicates: 1 Warnings: 0
через РНР
INSERT IGNORE INTO topology_node_pare
(`id`, `left_key`, `right_key`)
VALUES(NULL, 1, 6 (NULL, 2, 3 (NULL, 4, 5 (NULL, 1, 8 (NULL, 2, 5 (NULL, 6, 7 (NULL, 3, 4);):
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
структура таблицы:
CREATE TABLE IF NOT EXISTS topology_node_pare (
id INT( 1 ) AUTO_INCREMENT ,
left_key INT( 1 ) NOT NULL DEFAULT '0',
right_key INT( 1 ) NOT NULL DEFAULT '0',
PRIMARY KEY (id
UNIQUE (left_key, right_key)
) ENGINE = INNODB