gpt4 book ai didi

php - 如何在 PHP 中使用 bind_params 正确获取数据到数组

转载 作者:行者123 更新时间:2023-11-29 11:51:28 25 4
gpt4 key购买 nike

我目前正在尝试执行一些MySQL查询,并使用bind_params将结果保存到一个数组中,这两个参数为:userUniqueId(字符串)limit(用于限制查询记录).我尝试自己做某事,但似乎代码无法正常工作。我尝试了不同的方法来做到这一点,但仍然一无所获。你能试着帮助我吗?查询工作正常,因为我已经在 phpMyAdmin 中对其进行了测试。我想要编写的函数必须将记录提取到数组中,然后我想使用该数组作为函数的结果来json_encode该数组。

这是我的函数代码:

public function getUserFavouriteRecipes($user_unique_id, $limit) {
$stmt = $this->conn->prepare("SELECT recipe.`unique_id`, recipe.`title`, recipe.`img_tumbnail_link`, recipe.`add_date`, recipe.`kitchen_type`, recipe.`meal_type`, user.`name`, user.`surname`,
(SELECT count(*) from `like` WHERE recipe.`unique_id` = `like`.`recipe_unique_id_fk`) AS like_count
FROM `recipe`
JOIN `favourite` ON (recipe.`unique_id` = `favourite`.`recipe_unique_id_fk`)
JOIN `user` ON (recipe.`user_unique_id_fk` = user.`unique_id`)
WHERE favourite.`user_unique_id_fk` = ?
ORDER BY recipe.`add_date` DESC
LIMIT ?, 10");
$converted_limit = intval($limit);

$stmt->bind_param("si", $user_unique_id, $limit);
$result = $stmt->execute();

if ($result) {
$myArray = array();

// Fetching Rows From Query
while ($row = $result->get_result()->fetch()) {
$myArray[] = $row;
}
$stmt->close();

return $myArray;
} else {
return NULL;
}
}

这里我尝试对其进行编码:

<?php
require_once 'include/DB_Functions.php';
$db = new DB_Functions();

// Receiving The Post Params
$user_unique_id = $_POST['user_unique_id_fk'];
$limit = $_POST['limit'];

// Getting Result Array
$resultArray = $db->getUserFavouriteRecipes($user_unique_id, $limit);
echo json_encode($resultArray);
?>

预先感谢您的帮助。

最佳答案

使用准备好的语句获取结果的正确方法是:

...    
$stmt->execute();
$myArr = array();
$tmp = array();
$stmt->bind_result($tmp['unique_id'], $tmp['title'], ...); // all fields in select
$i = 0;
while($stmt->fetch()) {
$myArr[$i] = $tmp;
$i++;
}
if (count($myArr) > 0) {
return $myArr;
} else {
return false;
}

关于php - 如何在 PHP 中使用 bind_params 正确获取数据到数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33973869/

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