为什么我的文本文件中填充了 php 中数据库中的数据值?
Why my text file is filling with values of data from database in php?
这是我的 PHP 代码:
<?php
$fh = fopen('mytest.txt', 'w');
$con = mysqli_connect("some.host.com", "username", "password", "database");
if (mysqli_connect_errno($con)) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
mysqli_select_db($con, "database");
$result = mysqli_query($con, "SELECT * FROM Apri_score");
while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
$num = mysqli_num_fields($result);
$last = $num - 1;
for ($i = 0; $i < $num; $i++) {
fwrite($fh, $row[$i]);
if ($i != $last) {
fwrite($fh, ",");
}
}
fwrite($fh, "\n");
}
fclose($fh);
?>
mytest.txt
文件中充满了逗号但没有数据。我不明白为什么会这样。
您的问题是您正在使用 mysqli_fetch_array()
,第二个参数为 MYSQLI_ASSOC
。这将为 $row
分配包含列名的数组键。您正在使用 for 循环中 $i
的数字索引访问它们。
将其更改为 mysqli_fetch_row($result)
或将 mysqli_fetch_array()
与 MYSQLI_NUM
的第二个参数一起使用,这将 return 具有数字索引的数组。
这是我的 PHP 代码:
<?php
$fh = fopen('mytest.txt', 'w');
$con = mysqli_connect("some.host.com", "username", "password", "database");
if (mysqli_connect_errno($con)) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
mysqli_select_db($con, "database");
$result = mysqli_query($con, "SELECT * FROM Apri_score");
while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
$num = mysqli_num_fields($result);
$last = $num - 1;
for ($i = 0; $i < $num; $i++) {
fwrite($fh, $row[$i]);
if ($i != $last) {
fwrite($fh, ",");
}
}
fwrite($fh, "\n");
}
fclose($fh);
?>
mytest.txt
文件中充满了逗号但没有数据。我不明白为什么会这样。
您的问题是您正在使用 mysqli_fetch_array()
,第二个参数为 MYSQLI_ASSOC
。这将为 $row
分配包含列名的数组键。您正在使用 for 循环中 $i
的数字索引访问它们。
将其更改为 mysqli_fetch_row($result)
或将 mysqli_fetch_array()
与 MYSQLI_NUM
的第二个参数一起使用,这将 return 具有数字索引的数组。