我有这个 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()