如果我 var_dump($code) 我得到这个 string(5) "1,2,3" 这是我的存储过程-6ren">
gpt4 book ai didi

php - 值从 php 到存储过程

转载 作者:行者123 更新时间:2023-11-29 06:54:23 24 4
gpt4 key购买 nike

这是我的PHP代码

<?php
$code='1,2,3';
$this->db->query("CALL SP_db(\"$code\"));
?>

如果我 var_dump($code) 我得到这个 string(5) "1,2,3"

这是我的存储过程代码

CREATE DEFINER=`test`@`localhost` PROCEDURE `SP_db`(v_company varchar(10))

begin

select * from blabla where company_id in (v_company);
.
.
.

我使用这段代码向表中插入一些值如果我使用这段代码的问题,我从 php 获取 v_company 它不起作用

但如果我尝试填充它起作用的值

CREATE DEFINER=`test`@`localhost` PROCEDURE `SP_db`(v_company varchar(10))

begin

select * from blabla where company_id in (1,2,3);

但 php 发送的值由存储过程接收,我尝试将 v_company 值保存到表中以确保它有效

因为php的值进入了表

谁能告诉我代码哪里错了

最佳答案

当你将 '1,2,3' 传递给你的过程时,你会得到一个字符串,你的查询就变成了

select * from blabla where company_id in ('1,2,3');

不是

select * from blabla where company_id in (1,2,3);

您可以使用find_in_set代替in

select * from blabla where find_in_set(company_id, v_company);

但它不会像in那样很好地使用索引;

关于php - 值从 php 到存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13622509/

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