gpt4 book ai didi

php - mysqli 准备语句 - 嵌套函数不执行

转载 作者:搜寻专家 更新时间:2023-10-31 21:15:36 25 4
gpt4 key购买 nike

fetch 内的嵌套函数(在另一个函数内)不执行。

fn_smth1 嵌套在 fn_smth2 内部,应该通过 fn_smth2 输出结果

下面的例子是一个简化版本。

function fn_smth1 ($id){
global $mysqli;
$stmt = $mysqli->stmt_init();
if ($stmt->prepare("SELECT code FROM at WHERE id = ?")){
$stmt->bind_param("i",$id);
$stmt->execute();
$stmt->bind_result($code);
if ($stmt->fetch()){
$code_displ = $code;
}
}
$stmt->close;
return $code_displ;
}


function fn_smth2($id){
global $mysqli;
$stmt = $mysqli->stmt_init();
if ($stmt->prepare("SELECT idx, name FROM at WHERE id = ?")){
$stmt->bind_param("i",$id);
$stmt->execute();
$stmt->bind_result($idx, $name);
if ($stmt->fetch()){
$code_displ = $name.' === '.fn_smth1($idx);
}
}
$stmt->close;
return $code_displ;
}


echo fn_smth2(1);

//预期的

这里有一些名字===这里有一些代码

//收到

some name here === null (function fn_smth1 does not give a value)

最佳答案

您正在尝试执行第二个准备好的语句,而第一个语句的结果集尚未存储。使用 mysqli_stmt::store_result()在尝试执行第二条语句之前。

关于php - mysqli 准备语句 - 嵌套函数不执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9473401/

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