使用PHP将数据从SQl导出到Excel

所以pipe理员可以select他想要导出到excel的select,我select存储在col []中的checkbox…这里是我的导出代码

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'