【发布时间】:2012-03-17 10:05:53
【问题描述】:
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);
//预期的
这里有一些名字 === 这里有一些代码
//收到
此处的某个名称 === null(函数 fn_smth1 没有给出值)
【问题讨论】:
标签: php mysqli prepared-statement nested-function