我有一个mysql数据库,正试图打印出特定行的内容。出于某种原因,echo$行[1];完美地打印出第1行的内容,但我无法对其他行执行相同的操作(echo$row[2];,echo$行[3];,等等)。该表有一个唯一的索引列,其中有四行标记为1-4。
我最终想做的是打印出最后一行的内容,我认为这看起来像echo$row['$maxrows'];然而,我甚至不能得到语法打印任何行超过1!
我认为这可能是我的表的一个问题,但是由于有一个索引列,所以不能完全看到它是什么。如有任何建议或建议,将不胜感激?
我该怎么做才能将表中的行回显到第1行之后?
更新 var_dump($row);
返回下面的
{ [0]=> string(1) "1" ["Index"]=> string(1) "1" [1]=> string(121) "https://www.tilley.com/media/catalog/product/cache/image/1100x1100/e9c3970ab036de70892d86c6d221abfe/t/t/ttw2_black2_a.jpg" ["Sketch"]=> string(121) "https://www.tilley.com/media/catalog/product/cache/image/1100x1100/e9c3970ab036de70892d86c6d221abfe/t/t/ttw2_black2_a.jpg" }
该表有两列:
1-Name: Index - int(11) - AUTO_INCREMENT
2-Name: Sketch - text
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT * FROM Table";
$result = mysqli_query($conn, $sql);
$maxrows = mysqli_num_rows($result);
//$result = $conn->query("SELECT * FROM Table");
$row = $result->fetch_array(MYSQL_BOTH);
echo $maxrows;
echo $row[1];
echo $row[2];
echo $row[3];
echo $row[4];
//echo $result;
$conn->close();
1条答案
按热度按时间bwleehnv1#
结果数组有4个键:
0
,Index
,1
以及Sketch
,这只是第一行的结果。您正在查询2列,但尝试访问4列。列编号从0开始。你不会迭代结果行。那个$row = $result->fetch_array(MYSQL_BOTH);
应该在一个循环中。启用错误报告。php将向您显示您正在访问哪些未定义的变量。
使用pdo有利于mysqli。
不要创建同时包含列名索引和数字索引的数组(不要使用
MYSQL_BOTH
). 使用PDO::FETCH_ASSOC
或者PDO::FETCH_NUM
.开始使用
var_dump()
而不是echo
用于调试。总是。使用
foreach
处理结果数组时循环。