gpt4 book ai didi

php - 在 PHP 中使用 MySQL 函数

转载 作者:行者123 更新时间:2023-11-30 22:57:01 27 4
gpt4 key购买 nike

我在使用 PHP 运行 MySQL 函数时遇到了一些问题,它实际上是一系列“DROP FUNCTION IF EXISTS”和“CREATE FUNCTION”语句跟在使用这些函数的查询之后。

整个过程都在裸 MySQL 中运行,我也使用“DELIMITER”语句(就像这样)。

在 PHP 中,我尝试运行整个过程,函数声明,然后作为一个大字符串一起查询,这让我明白我不需要“DELIMITER”语句,但是当 php 开始执行查询时,它仍然无法访问这些功能。

我也尝试过以相同的方式使用“mysqli_multi_query()”并在同一链接上分别运行每个查询,但最后我得到了相同的错误。

我不会发布我的整个代码,我觉得我做的事情根本上是错误的,我的 drop/函数声明看起来像:

DROP FUNCTION IF EXISTS PQTY

CREATE FUNCTION PQTY (v_product_id INT,v_p_qty INT, v_option_id INT, v_option_value_id INT) RETURNS INT
NOT DETERMINISTIC
BEGIN
DECLARE qty INT;

SELECT products_stock_quantity INTO qty
FROM products_stock
WHERE products_stock_attributes = CONCAT(v_option_id,'-',v_option_value_id)
AND products_id = v_product_id;
IF ISNULL(qty) THEN
RETURN v_p_qty;
ELSE
RETURN qty;
END IF;
END

和主要查询:

SELECT PQTY(p.products_id,p.products_quantity, po.products_options_id, pov.products_options_values_id) AS 'qty'

FROM products p

LEFT JOIN products_description pd
ON p.products_id = pd.products_id

LEFT JOIN manufacturers m
ON m.manufacturers_id = p.manufacturers_id

LEFT JOIN products_attributes pa
ON p.products_id = pa.products_id

LEFT JOIN products_options po
ON po.products_options_id = pa.options_id

LEFT JOIN products_options_values pov
ON pov.products_options_values_id = pa.options_values_id

LEFT JOIN products_options_text pot
ON pot.products_options_text_id = po.products_options_id

就像我说的,在 PHP 中,我试过单独运行每条语句,但在同一个链接上,也作为一个大字符串运行,到目前为止,我一直在尝试使用遗留的 mysql 函数和 mysqli 函数(过程函数) .

如有任何帮助,我们将不胜感激。

最佳答案

您不能在 mysqli_multi_query 中将常规查询与 create function 语句混合使用,因为它们都需要自己的(分号)分隔符,您不能在此处重新定义分隔符。所以你必须把语句分开。

关于php - 在 PHP 中使用 MySQL 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25864903/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com