-1

我的文件上有这段代码,它适用于不同的文件,但在这个新文件上,它与有效的文件做同样的事情,它不起作用

mysql_select_db($db);
$result = mysql_query("
SELECT 
    CONCAT(`employees`.`first_name`,
            ' ',
            `employees`.`middle_name`,
            ' ',
            `employees`.`last_name`) AS `fullname`,
    `banks`.`bank_code`,
    `bank_branch_code`.`branch_code`,
    `employees`.`account_number`,
    `pay_roll_history`.`payable`,
    `employees`.`email`,
    `banks`.`payment_type`,
    `banks`.`process_mode`
FROM
    `employees`,
    `banks`,
    `bank_branch_code`,
    `pay_roll_history`
WHERE
    `employees`.`bank_id` = `banks`.`bank_id` 
    AND `employees`.`employee_id` = `pay_roll_history`.`employee_id` 
    AND `banks`.`bank_id` = `bank_branch_code`.`bank_id` 
    AND `pay_roll_history`.`payroll_date` = '$this_date'
");

//Open a csv file
$fp = fopen('c:\users\oteheddy\Desktop\test\BankReport.csv', 'w');


//*************************************
// fetch a row and write the column names out to the file
$row = mysql_fetch_assoc($result);
$line = "";
$comma = "";

foreach($row as $name => $value) {
    $line .= $comma . '"' . str_replace('"', '""', $name) . '"';
    $comma = ",";
}
$line .= "\n";
fputs($fp, $line);

// remove the result pointer back to the start
mysql_data_seek($result, 0);

我得到这些错误

警告:第 32 行 C:\xampp\htdocs\pitss\export\bankexport.php 中为 foreach() 提供的参数无效

警告:mysql_data_seek() [function.mysql-data-seek]:偏移量 0 对第 40 行 C:\xampp\htdocs\pitss\export\bankexport.php 中的 MySQL 结果索引 18(或查询数据未缓冲)无效

我在做什么错?

4

3 回答 3

1

第一件事是第一件事:
确保查询没有错误,您可以mysql_error()在您的情况下使用。


第二件事:
使用准备好的查询,您现在拥有的查询可以导致一个bobby-table ...

于 2012-07-18T15:13:02.790 回答
0

如果您的 $row 变量不是数组,则会引发此错误。

所以查询本身可能会引发错误。

尝试检查 mysql 错误mysql_error()并在其他任何地方进行适当的错误处理。

于 2012-07-18T15:03:11.890 回答
0

你不检查是否$result是资源或只是FALSE
你不检查你是否有一个数组$row,可能是FALSE

您可以使用 mysql_error() 查看最后一个数据库错误

于 2012-07-18T15:03:17.070 回答