|
|
|
| Проблема в запросе к БД MySQL:
При вызове хранимой процедуры, в таблицу добавляются данные. Так вот, при добавлении данных в таблицу, в varchar(255) поле вводятся тока цифры. На другие символы ругается что неправильный синтаксис (Unknown column "тут текст" in "fieldlist").
Собственно сам запрос:
CREATE PROCEDURE `addmessage`(IN var_table VARCHAR(50), IN var_user INT(10), IN var_text VARCHAR(255))
BEGIN
SET @query := CONCAT("SELECT COUNT(*) FROM ", var_table, " INTO @var_count");
PREPARE query FROM @query;
EXECUTE query;
DEALLOCATE PREPARE query;
IF @var_count >= 10 THEN
BEGIN
SET @query := CONCAT("SELECT MIN(m_id) FROM ", var_table, " INTO @min");
PREPARE query FROM @query;
EXECUTE query;
DEALLOCATE PREPARE query;
SET @query := CONCAT("DELETE FROM ", var_table, " WHERE m_id = @min");
PREPARE query FROM @query;
EXECUTE query;
DEALLOCATE PREPARE query;
END;
END IF;
SET @query := CONCAT("INSERT INTO ", var_table, "(m_user, m_date, m_text) VALUES (", var_user, ", NOW(), ", var_text, ")");
PREPARE query FROM @query;
EXECUTE query;
DEALLOCATE PREPARE query;
END
|
Проблемное поле - m_text, вводится туда var_text. Тип у обох varchar(255).
Помогите. Хз где косяк. | |
|
|
|
|
|
|
|
для: ~TB~
(24.04.2011 в 12:09)
| | Нужно поместить строковые данные в кавычки, т.е. вместо
SET @query := CONCAT("INSERT INTO ", var_table, "(m_user, m_date, m_text) VALUES (", var_user, ", NOW(), ", var_text, ")");
| писать
SET @query := CONCAT("INSERT INTO ", var_table, "(m_user, m_date, m_text) VALUES (", var_user, ", NOW(), '", var_text, "')");
|
| |
|
|
|
|
|
|
|
для: cheops
(24.04.2011 в 12:35)
| | Огромное спасибо. Прекрасно помогло! | |
|
|
|