-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);

そして、私はこれらのエラーを受け取ります

警告: C:\xampp\htdocs\pitss\export\bankexport.php の 32 行目の foreach() に無効な引数が指定されました

警告: mysql_data_seek() [function.mysql-data-seek]: C:\xampp\htdocs\pitss\export\bankexport.php 行 40 の MySQL 結果インデックス 18 (またはクエリ データがバッファリングされていない) に対してオフセット 0 は無効です

私は何を間違っていますか?

4

3 に答える 3

1

1つ目は1つ目です。
クエリにエラーがないmysql_error()ことを確認してください。あなたのケースで使用できます。


2番目のこと:
準備されたクエリを使用してください。今持っているものはボビーテーブルにつながる可能性があります...

于 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 に答える