gpt4 book ai didi

php - 从 mysqli 查询返回数组的多行

转载 作者:可可西里 更新时间:2023-11-01 07:30:19 25 4
gpt4 key购买 nike

我的 functions.php 文件中有这个

function getUserOrders($userId){
global $conn;
$query = "SELECT * ";
$query .= "FROM orders ";
$query .= "WHERE userid=" . $userId . " ";
$odrset = mysqli_query($conn, $query);

while ($odr = mysqli_fetch_assoc($odrset)){
return $odr;
}
}

我需要在我的 orders.php 文件中做的是显示特定字段及其来自返回的 $odr 数组的值,如该代码段所示

$userId = sql_prep($_SESSION['userid']) ;
getUserOrders($userId);
echo $odr['title'].$odr['orderid'].'<br>'

我只能在 functions.php 文件中完成...

function getUserOrders($userId){
global $conn;
$query = "SELECT * ";
$query .= "FROM orders ";
$query .= "WHERE userid=" . $userId . " ";
$odrset = mysqli_query($conn, $query);
confirm_query($odrset);

while ($odr = mysqli_fetch_assoc($odrset)){
echo $odr['title'].$odr['orderid'].'<br>';
}
}

..并像这样在我的 orders.php 文件中调用它:

$userId = sql_prep($_SESSION['userid']) ;
getUserOrders();

这不好,因为我需要在其他地方回收该函数并显示不同的字段及其值。所以我需要在我的 order.php 中将 $odr 作为数组返回

最佳答案

将其存储为数组,然后返回数组。

function getUserOrders($userId){
global $conn;
$query =
"SELECT *
FROM orders
WHERE userid= ?";
$odrset = mysqli_prepare($conn, $query);
mysqli_stmt_bind_param($odrset, 'i', $userId);
mysqli_stmt_execute($odrset);

while ($odr = mysqli_fetch_assoc($odrset)){
$return[] = $odr;
}
return $return;
}

我已经更新了您的 mysqli 连接,以使用带有准备好的语句的参数化查询。你可以在这里阅读更多关于这些的信息,http://php.net/manual/en/mysqli.quickstart.prepared-statements.php .这是比转义更好的方法。

以后使用...

$orders = getUserOrders($_SESSION['userid']);
foreach($orders as $order) {
echo $order['title'] . $order['orderid'];
}

您可能不需要使用这种方法的 sql_prep 函数,我不确定它做了什么。您的问题代码没有将 userid 传递给该函数,因此我认为这不是您的确切用法。

关于php - 从 mysqli 查询返回数组的多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35261074/

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