簡體   English   中英

將SQL中的行插入PHP中的數組

[英]Insert rows from SQL to array in PHP

誰能告訴我為什么row[0]有數據,但是row[1]row[3] undefined (空)?

我的數據庫中有4行具有bookid = '35'

<?php
$mysqli = new mysqli('localhost', 'root', '', 'assignment3');
$query = "select image from images where BookId='35'";
$result = $mysqli->query($query);
$row = $result->fetch_array(MYSQLI_NUM);
echo $row[0];
echo $row[1];
echo $row[2];
echo $row[3];
?>

每次要擴展到下一行時,都需要使用fetch_array 使用數字索引( 0, 1, 2 ... n )僅按行中的數字檢索列。

嘗試這個:

$row = $result->fetch_array(MYSQLI_NUM);
print_r($row); // row 1
$row = $result->fetch_array(MYSQLI_NUM);
print_r($row); // row 2
$row = $result->fetch_array(MYSQLI_NUM);
print_r($row); // row 3
$row = $result->fetch_array(MYSQLI_NUM);
print_r($row); // row 4

如果這對您有意義,您甚至可以將其抽象為for循環:

for ($i = 0; $i < 4; $i++) {
    $row = $result->fetch_array(MYSQLI_NUM);
    print_r($row);
}

使用mysqli_fetch_all()非常方便,因為它可以在單個步驟中將所有行作為數組返回。 但是,如果結果集很大,可能會占用大量內存。

例如。

<?php
$mysqli = new mysqli('localhost', 'root', '', 'assignment3');
$query = "select image from images where BookId='35'";
$result = $mysqli->query($query);
//MYSQLI_NUM for numerical array,
//This will return both associative and numerical, if not specify any parameters.
$row = $result->mysqli_fetch_all(MYSQLI_NUM);
//this will print all rows
print_r($row);

//now it is valid to call
echo $row[0];
echo $row[1];
echo $row[2];
echo $row[3];
?>
select image from images where BookId='35'

這僅返回一列,因此這就是$ row [0]和$ row [1]起作用的原因

你需要這個:

SELECT * FROM images WHERE BookId = '35'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM