在过去的两天左右,我一直在将我的功能转换为mysqli.我遇到了一个问题.我有一个函数返回一个包含数据库中一行的数组.但是,我希望数组包含多行而不是一行.另外,我如何能够回应各个帖子.这是我的失败尝试,只显示数组中的一行.
$mysqli = new mysqli("localhost", "user", "password", "database");
function display_posts ($mysqli, $user_id) {
$fields = "`primary_id`, `poster_id`, `profile_user_id`, `post`";
$user_id = (int)$user_id;
$query = "SELECT DISTINCT $fields FROM `posts` WHERE `profile_user_id` = $user_id
LIMIT 4";
if ($result = $mysqli->query($query)) {
$row = $result->fetch_assoc();
return $row;
$result->free();
$stmt->close();
}}
Run Code Online (Sandbox Code Playgroud)
在这里,我试图显示数据.
$user_id = 1;
$posts = display_posts($mysqli, $user_id);
//Not sure what to do with $posts. A While loop perhaps to display each post?
Run Code Online (Sandbox Code Playgroud)
Jes*_*nch 13
你必须使用一个循环来同时获取它们:
<?php
function resultToArray($result) {
$rows = array();
while($row = $result->fetch_assoc()) {
$rows[] = $row;
}
return $rows;
}
// Usage
$query = 'SELECT DISTINCT $fields FROM `posts` WHERE `profile_user_id` = $user_id LIMIT 4';
$result = $mysqli->query($query);
$rows = resultToArray($result);
var_dump($rows); // Array of rows
$result->free();
Run Code Online (Sandbox Code Playgroud)
小智 11
为什么不直接使用这样:
$result = mysqli_fetch_all($mysqli->query($query), MYSQLI_ASSOC);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
32915 次 |
| 最近记录: |