选择带有准备和不准备的语句

问题描述 投票:-1回答:1

我正在尝试从数据库中选择与未准备好的语句完美配合的数据,但是由于某种原因,我的准备好的版本仅显示数据库中的一张“卡片”。这是未准备好的:

$sql = "SELECT id, name, description, address, phone, phone2, email, company, job, visibility, confirmed, userid FROM cards WHERE visibility = 1";
$resultset = mysqli_query($conn, $sql) or die("database error:" . mysqli_error($conn));
while ($record = mysqli_fetch_assoc($resultset)) {
//bootstap card with the records from the database. Shows up 4 cards.
}

和准备好的:

$visibility = 1;
$stmt = $conn->prepare("SELECT id, name, description, address, phone, phone2, email, company, job, visibility, confirmed, userid FROM cards WHERE visibility = ?");
$stmt->bind_param("i", $visibility);
$stmt->execute();
$result = $stmt->get_result();
while ($record = mysqli_fetch_assoc($result)) {
//bootstap card with the records from the database. Shows up only one card.
}
php mysql sql database
1个回答
0
投票

mysqli_fetch_assoc()是不存在的函数。 mysql_fetch_assoc()是已弃用的函数;如果使用它,您将混合使用面向对象和程序方法。您想要的是什么:https://www.php.net/manual/en/mysqli-result.fetch-array.php

$tableData = [];
$visibility = 1;
$stmt = $conn->prepare("SELECT id, name, description, address, phone, phone2, email, company, job, visibility, confirmed, userid FROM cards WHERE visibility = ?");
$stmt->bind_param("i", $visibility);
$stmt->execute();
$result = $stmt->get_result();
while ($row = $result->fetch_array(MYSQLI_ASSOC);) {
    array_push($tableData, $row);
}

var_dump($tableData);

$id1 = $tableData[0][0];
$name1 = $tableData[0][1];
$description2 = $tableData[1][3];
© www.soinside.com 2019 - 2024. All rights reserved.