gpt4 book ai didi

php - 无法使用 adodb 将字符串传递给 MySQL 存储过程

转载 作者:行者123 更新时间:2023-11-29 14:38:43 25 4
gpt4 key购买 nike

我使用 adodb5 调用此存储过程,但 MySQL 不理解 $sealID 是一个字符串

$db = NewADOConnection('mysql://'.DB_USER.':'.DB_PASS.'@'.DB_SERVER.'/'.DB_NAME);
$sql = "CALL GetSeal($userID, $sealID, @result)";
$r = $db->Execute($sql);

当我从 shell 运行这个 php 时。

TestGetSealProc.php 3155011 ZZZZNLJSAYGZECWY

MySQL 报告:

Unknown column 'ZZZZNLJSAYGZECWY' in 'field list'

ZZZZNLJSAYGZECWY 必须被理解为字符串而不是列。如何解决?

更新:我的存储过程的第一部分。

    CREATE DEFINER=`root`@`localhost` PROCEDURE `GetSeal`(IN userID INT, IN sealID char(16), OUT result INT)
BEGIN

DECLARE imageCnt INT;
DECLARE pointCnt INT;
DECLARE puriCode varchar(256);
DECLARE newImgID INT;
....

DECLARE c_data CURSOR FOR
SELECT TELEPHONE_NUMBER, IMG_FILENAME, SELECTION_FLG, PHOTOGRAPH_DATE, SEND_DATE
FROM re_photograph_imgs
WHERE SEAL_NUMBER = sealID
AND IMG_FILENAME IS NOT NULL
AND IMG_FILENAME != "";

......................

最佳答案

不要忘记引号。如果没有它们,裸字符串将被解释为字段名称:

$sql = "CALL GetSeal($userID, '$sealID', @result)";
^ ^

关于php - 无法使用 adodb 将字符串传递给 MySQL 存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8446339/

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