SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 02.12.2014 20:55:51

saharin
Участник
Зарегистрирован: 22.10.2013
Сообщений: 22

помогите сделать запрос с кавычками через mysql_query php

сабж

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 'DELIMITER $$ CREATE FUNCTION `json` (`jsonstr` TEXT, `search_key` V' at line 5



           DELIMITER $$
            CREATE FUNCTION `json`(`json` TEXT, `search_key` VARCHAR(255))
            RETURNS TEXT CHARSET utf8 DETERMINISTIC
            BEGIN
                 DECLARE i INT DEFAULT 1;
                 DECLARE json_length INT DEFAULT LENGTH(json);
                 DECLARE state ENUM('reading_key','done_reading_key','reading_string', 'reading_array', 'reading_number');
                 DECLARE tmp_key TEXT;
                 DECLARE tmp_value TEXT;
                 DECLARE current_char VARCHAR(1);
                 WHILE i <= json_length DO
                     SET current_char = SUBSTRING(json,i,1);
                     IF state = 'reading_key' THEN
                         IF current_char = '"' THEN
                             SET state = 'done_reading_key';
                         ELSE
                             SET tmp_key = CONCAT(tmp_key, current_char);
                         END IF;
                     ELSEIF state = 'done_reading_key' THEN
                         IF current_char = '"' THEN
                             SET state = 'reading_string';
                         ELSEIF current_char = '[' THEN
                             SET state = 'reading_array';
                         ELSEIF IsNumeric(current_char)=1 THEN
                             SET state = 'reading_number';
                             SET tmp_value=CONCAT(tmp_value, SUBSTRING(json,i,1));
                         END IF;
                     ELSEIF state = 'reading_string' OR state = 'reading_array' THEN
                         IF current_char = '\\' THEN
                             SET i = i + 1;
                             SET tmp_value = CONCAT(tmp_value, SUBSTRING(json,i,1));
                         ELSEIF (state = 'reading_string' AND current_char = '"') OR (state = 'reading_array' AND current_char = ']') THEN
                             IF search_key = tmp_key THEN
                                 RETURN tmp_value;
                             ELSE
                                 SET state = NULL;
                             END IF;
                         ELSE
                             SET tmp_value = CONCAT(tmp_value, current_char);
                         END IF;
                     ELSEIF (state = 'reading_number') THEN
                         IF (state = 'reading_number' AND isNumeric(current_char)!=1) THEN
                             IF search_key = tmp_key THEN
                                 RETURN tmp_value;
                             ELSE
                                 SET state = NULL;
                             END IF;
                         ELSE
                             SET tmp_value=CONCAT(tmp_value, SUBSTRING(json,i,1));
                         END IF;
                     ELSE
                         IF current_char='"' THEN
                             SET state = 'reading_key';
                             SET tmp_key = '';
                             SET tmp_value = '';
                         END IF;
                     END IF;
                     SET i = i + 1;
                 END WHILE;
                 RETURN NULL;
            END$$
            DELIMITER ;

Отредактированно saharin (02.12.2014 21:49:48)

Неактивен

 

#2 03.12.2014 18:54:27

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: помогите сделать запрос с кавычками через mysql_query php

mysql_query позволяет выполнять только один запрос за раз, используйте mysqli_query

Неактивен

 

#3 03.12.2014 19:16:54

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: помогите сделать запрос с кавычками через mysql_query php

DELIMITER - команда клиента mysql, серверу ее передавать не нужно.

Неактивен

 

#4 03.12.2014 23:05:40

saharin
Участник
Зарегистрирован: 22.10.2013
Сообщений: 22

Re: помогите сделать запрос с кавычками через mysql_query php

помогите

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 4 SQL=CREATE FUNCTION `json`(`json` TEXT, `search_key` VARCHAR(255)) RETURNS TEXT CHARSET utf8 DETERMINISTIC BEGIN DECLARE i INT DEFAULT 1;


пробовал заключать в кавички переменную, и значение по умолчанию, серавно выдает такую же ошибку, не могу понять что требуется, подскажите пожалуйста

Отредактированно saharin (03.12.2014 23:13:04)

Неактивен

 

#5 04.12.2014 00:15:45

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: помогите сделать запрос с кавычками через mysql_query php

Попробуйте с mysqli. Вот пример http://stackoverflow.com/questions/1456 … t-with-php

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson