2
フェッチ内のネストされた関数(別の関数の内部にある)は実行されません。mysqli prepared statement - ネストされた関数が実行されない
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);
が
を期待//ここにいくつかの名前は、ここではいくつかのコード
//が
を受け===ここにいくつかの名前===ヌル(関数fn_smth1値を与えるものではありません)
ヒントありがとうございます - あなたは正しい、そのネストされた関数は明らかに準備されたものを使用します – Jeffz