使用PHP将数据从SQl导出到Excel
所以管理员可以通过选择我存储在col[]中的复选框来选择要导出到excel的内容。。。 这是我的导出代码使用PHP将数据从SQl导出到Excel,php,mysql,excel,Php,Mysql,Excel,所以管理员可以通过选择我存储在col[]中的复选框来选择要导出到excel的内容。。。 这是我的导出代码 session_start(); $HOST = 'localhost'; $USERNAME = 'root'; $PASSWORD = ''; $DB = 'fyp_db'; $link = mysqli_connect($HOST, $USERNAME, $PASSWORD, $DB); if (is_array($_POST['col'])) { $sql = "SEL
session_start();
$HOST = 'localhost';
$USERNAME = 'root';
$PASSWORD = '';
$DB = 'fyp_db';
$link = mysqli_connect($HOST, $USERNAME, $PASSWORD, $DB);
if (is_array($_POST['col'])) {
$sql = "SELECT ";
foreach ($_POST['col'] AS $value) {
$sql .= "{$value}, ";
}
$sql = substr($sql, 0, -2);
$sql .= " FROM account, coursedetail, coursecategory";
/*echo "sql= " . $sql . "<br /><br />\n";*/
} else {
echo "No column was selected<br /><br />\n";
}
function cleanData(&$str) { $str = preg_replace("/\t/", "\\t", $str); $str = preg_replace("/\r?\n/", "\\n", $str); if(strstr($str, '"')) $str = '"' . str_replace('"', '""', $str) . '"'; }
$filename = "website_data.xls";
header("Content-Type: text/plain");
$flag = false;
$result = mysqli_query($link, $sql) or die(mysqli_error($link));
while(false !== ($row = mysql_fetch_assoc($result))) {
if(!$flag) {
// display field/column names as first row
echo implode("\t", array_keys($row)) . "\r\n";
$flag = true;
}
array_walk($row, 'cleanData');
echo implode("\t", array_values($row)) . "\r\n";
}
我的错误是
警告:mysql_fetch_assoc希望参数1是资源,对象在第28行的C:\xampp\htdocs\project\export_successful.php中给出
为什么 你把mysqli和mysql调用搞混了。这两个库不兼容,一个库返回的句柄/语句不能在另一个库中使用
$result = mysqli_query($link, $sql) or die(mysqli_error($link));
^--- note the 'i'
while(false !== ($row = mysql_fetch_assoc($result))) {
^--- note the LACK of an 'i'
也许你的SQL是无效的。请用echo发布您的SQL查询。而且你也不用mysql\u real\u escape\u字符串之类的东西!当我回显$sql时;我看到这个sql=选择姓名、联系电话、地址、出生日期、电子邮件、标题、帐户类别、coursedetail、CourseCategory sql是有效的,但我认为问题在于Marc B所说的mysql和mysqli。当我添加i,它确实工作并成功地提取了数据,但它说警告:无法修改标题信息-标题已经由C:\xampp\htdocs\project\export\u successful.php中的C:xampp\htdocs\project\export\u successful.php第26行中的输出发送,在标题调用之前,您不能有任何输出,否则会出现该错误。