我的文件中有这段代码,它在不同的文件中都能很好地工作,但在这个与工作文件做相同事情的新文件中,它不工作
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:''examplep''htdocs''pitss''export''bankexport.php中的foreach()提供的参数无效
警告:mysql_data_seek()[function.mysql data seek]:偏移量0对于第40行上C:''examplep''htdocs''pitss''export''bankexport.php中的mysql结果索引18无效(或查询数据未缓冲)
我做错了什么?
第一件事就是第一件事:
请确保查询不存在错误,您可以在您的情况下使用mysql_error()
。
第二件事:
使用准备好的查询,您现在拥有的查询可以导致一个浮动表。。。
如果$row变量不是数组,则会引发此错误。
因此,查询本身可能会引发错误。
尝试使用mysql_error()
检查mysql错误,并在其他地方进行正确的错误处理。
您不检查$result
是资源还是仅是FALSE
,
你没有检查你在$row
中是否有一个数组,可能是FALSE
您可以使用mysql_error()查看最后一个数据库错误