我mysql
了不同表的数据库。表之间的数据是链接的,我使用 userid 检索和显示它们。我使用了PHP MYSQLi显示数据库中的所有表的引用。我使用 fputcsv($fp, $val)
将结果输出到.csv
文件中,但出现此错误:
警告:fputcsv() 期望参数 2 为数组** 。这是我的代码:
<?php
$con=mysqli_connect("localhost","root","","mytable");
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$sql = "SELECT user_id FROM tbl_users";
$users_profile_user_id = mysqli_query($con, $sql);
$row = mysqli_fetch_array($users_profile_user_id, MYSQLI_ASSOC);
$fp = fopen("user_profile_id.csv", "w");
foreach($row as $val) {
fputcsv($fp, $val);
}
fclose($fp);
?>
我还尝试将 fputcsv($fp, $val) 替换为 var_export($val),它只显示数据库中的 1 个条目。现在我知道为什么它显示错误,因为它显示一个字符串,但它的解决方法是什么?如何从数据库中获取所有条目,并在.csv文件中显示所有这些元素?
"警告:fputcsv() 期望参数 2 是数组,字符串在第 17 行给出"是一条非常有用的消息。
这意味着在fputcsv($fp, $val);
中,$val应该是一个数组,而事实并非如此。
$val
是$row
数组的一个元素,因此查询或数据库中的数据存在问题。
你必须给它一个数组,所以像这样尝试
$sql = "SELECT user_id FROM tbl_users";
$users_profile_user_id = mysqli_query($con, $sql);
$fp = fopen("user_profile_id.csv", "w");
while ($row = mysqli_fetch_assoc($users_profile_user_id)) {
fputcsv($fp, $row);
}
fclose($fp);
阅读文档
fputcsv 应该是值数组,你有一个 there 字符串。