私はこのPHP関数を持っています:
function userParent($Username)
{
global $con;
$Result = mysqli_query($con, "SELECT Username FROM Family WHERE Parent = '$Username' LIMIT 10");
$row = mysqli_fetch_assoc($Result);
return $row;
}
その関数は配列に10行を与えるはずですが、配列に値があるのはなぜですか? 関数ブラケットの外側のコードをテストし、次のように WHILE ループを追加しようとしました:
while ($row = mysqli_fetch_assoc($Result)){
print_r($row);
}
そしてそれは動作します。10行を配列形式で取得しました。ただし、結果を画面に出力します。関数で返すことができるように変数として作成する方法は?
ありがとう。
更新:フィルの答えによると、ここに私の完全なコードがあります:
<?php
function userParent(mysqli $con, $username) {
$stmt = $con->prepare('SELECT Username FROM Family WHERE Parent = ? LIMIT 10');
$stmt->bind_param('s', $username);
$stmt->execute();
$res = $stmt->get_result();
return $res->fetch_all(MYSQLI_ASSOC);
}
$DbServer = 'localhost';
$DbUser = 'username';
$DbPassword = 'password';
$DbName = 'dbname';
$mysqli = new mysqli($DbServer, $DbUser, $DbPassword, $DbName);
$arrayParent = userParent($mysqli, 'root');
print_r($arrayParent);
?>
しかし、私はこのエラーメッセージを受け取りました:
致命的なエラー: 6 行目の /home/myhome/public_html/test.php の未定義メソッド mysqli_stmt::get_result() の呼び出し