国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > MySQL > 正文

mysql 存儲過程的問題

2020-01-19 00:20:44
字體:
供稿:網(wǎng)友
一開始用phpMyAdmin來執(zhí)行,后來出現(xiàn)一堆錯誤,后來去掉了begin,end之后可以正常執(zhí)行,但要執(zhí)行存儲過程,在phpMyAdmn中不行,而在mysql命令行文本框中就可以。
接下來又遇到更難的問題,在存儲過程中加入預(yù)處理語句,更不行了,在mysql命令行文本框下執(zhí)行同樣,下面的運行記錄,給大家參考,能否有高手來幫助。
復(fù)制代碼 代碼如下:

mysql> CREATE PROCEDURE catalog_get_products_in_category(
-> IN inCategoryId INT, IN inShortProductDescriptionLength INT,
-> IN inProductsPerPage INT, IN inStartItem INT)
-> begin
-> SELECT p.product_id, p.name,IF(LENGTH(p.description) <= inShortProductD
escriptionLength, p.description,
-> CONCAT(LEFT(p.description, inShortProductDescriptionLength),'...')) AS
description, p.price, p.discounted_price, p.thumbnail
-> FROM product p INNER JOIN product_category pc ON p.product_id = pc.pro
duct_id
-> WHERE pc.category_id = inCategoryId
-> ORDER BY p.display DESC
-> LIMIT inStartItem;inProductsPerPage;
-> end$$
ERROR 1064 (42000): 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 'inSta
rtItem;inProductsPerPage;
end' at line 10

//原本的存儲過程語句
EATE PROCEDURE catalog_get_products_in_category(
IN inCategoryId INT, IN inShortProductDescriptionLength INT,
IN inProductsPerPage INT, IN inStartItem INT)
BEGIN
PREPARE statement FROM
"SELECT p.product_id, p.name,IF(LENGTH(p.description) <= ?, p.description,
CONCAT(LEFT(p.description, ?),'...')) AS description, p.price, p.discounted_price, p.thumbnail
FROM product p INNER JOIN product_category pc ON p.product_id = pc.product_id
WHERE pc.category_id = ?
ORDER BY p.display DESC
LIMIT ?, ?";
SET @p1 = inShortProductDescriptionLength;
SET @p2 = inShortProductDescriptionLength;
SET @p3 = inCategoryId;
SET @p4 = inStartItem;
SET @p5 = inProductsPerPage;
EXECUTE statement USING @p1, @p2, @p3, @p4, @p5;
END$$

mysql> delimiter $$
mysql> CREATE PROCEDURE catalog_get_products_in_category(
-> IN inCategoryId INT, IN inShortProductDescriptionLength INT,
-> IN inProductsPerPage INT, IN inStartItem INT)
-> BEGIN
-> PREPARE statement FROM
-> "SELECT p.product_id, p.name,IF(LENGTH(p.description) <= ?, p.descript
ion,
"> CONCAT(LEFT(p.description, ?),'...')) AS description, p.price, p.disco
unted_price, p.thumbnail
"> FROM product p INNER JOIN product_category pc ON p.product_id = pc.pro
duct_id
"> WHERE pc.category_id = ?
"> ORDER BY p.display DESC
"> LIMIT ?, ?";
-> SET @p1 = inShortProductDescriptionLength;
-> SET @p2 = inShortProductDescriptionLength;
-> SET @p3 = inCategoryId;
-> SET @p4 = inStartItem;
-> SET @p5 = inProductsPerPage;
-> EXECUTE statement USING @p1, @p2, @p3, @p4, @p5;
-> END$$
ERROR 1314 (0A000): PREPARE is not allowed in stored procedures

上面有兩個存儲過程,一個不用預(yù)處理語句,一個用了預(yù)處理語句,
之后,向作者發(fā)過郵件,沒有答復(fù),又給mysql官方發(fā)過郵件,同樣沒答復(fù)?,F(xiàn)今只能求助諸位高人。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 阿拉尔市| 宝山区| 习水县| 石嘴山市| 开阳县| 濮阳县| 辛集市| 新密市| 什邡市| 绥江县| 天等县| 揭阳市| 亚东县| 华坪县| 桐梓县| 武宁县| 达拉特旗| 阿城市| 耒阳市| 桦川县| 两当县| 聊城市| 永登县| 南充市| 沭阳县| 宝山区| 东乌珠穆沁旗| 蒙自县| 巫溪县| 全州县| 胶州市| 沈丘县| 宕昌县| 乐山市| 乌海市| 普洱| 巴彦淖尔市| 缙云县| 建瓯市| 南宁市| 岑溪市|