2012-06-20 81 views
0

我有這個疑問,這是給我一些問題......Mysql的問題與檢索信息

我想查詢導出到一個文本文件,而這個函數創建的data.txt文件,但它是返回空。

該錯誤消息我得到的是:

mysql_fetch_array():提供的參數不是一個有效的MySQL結果資源在....上線87

的代碼是:

$fh = fopen('data.txt', 'w'); 
$result1 = mysql_query("SELECT $checked FROM hostess;"); 
while ($row = mysql_fetch_array($result1)) { 
    $last = end($row); 
    foreach ($row as $item) { 
     fwrite($fh, $item); 
     if ($item != $last) 
      fwrite($fh, "\t"); 
    } 
    fwrite($fh, "\n"); 
} 
fclose($fh); 

的線87:

while ($row = mysql_fetch_array($result1)) { 

這有什麼問題?

謝謝..

+0

1.什麼是'$ checked'中包含的? 2.什麼是最終查詢,它是一個有效的MySQL查詢嗎? 3. SQL注入 – kapa

+0

嘿謝謝你的回覆.. $ checked是一個變量,我從一個複選框..我已經解析它到這個其他文件,我只需要把$查詢內查詢...和結果應該是與該信息一起下載的文本文件。我需要下載生成的報告。 –

+0

檢查查詢。您可能會遇到一個錯誤,獲取創建的文本並通過phpmyadmin或控制檯直接在mysql上運行它。 – 2012-06-20 09:19:02

回答

1

您應該使用mysql_error(),而用mysql的方法來跟蹤誤差..

這裏就算了,你沒有創建MySQL連接。首先在該代碼的起始處添加以下行。

$link = mysql_connect('localhost', 'mysql_user', 'mysql_password'); 
if (!$link) { 
    die('Could not connect: ' . mysql_error()); 
} 
mysql_select_db('db'); 

然後運行你的代碼,不要忘記使用add mysql_error()。 :) :)

$result1 = mysql_query("SELECT checked FROM hostess"); 
if (!$result1) { 
    echo mysql_error(); 
}else{ 
    // your code 
} 
+0

是的,我明白了,謝謝你的建議:) –

1

你應該mysql_query()聽的錯誤,看看有什麼地方出了錯。在測試環境中,這可能如下所示:

$result1 = mysql_query("SELECT $checked FROM hostess"); 
if (!$result1) { echo mysql_error(); } 
// rest of the code 
+0

嘿..它說沒有選擇數據庫:S –

+0

此外,你應該刪除查詢中的尾部';',如在$ result1 = mysql_query(「SELECT $ checked FROM hostess」);' – Bart

+1

@GazetaAlmedicus所以你應該添加整個設置連接代碼, - )。也許還應該檢查[PDO](http://php.net/manual/en/book.pdo.php)和[mysqli](http://php.net/manual/en/book.mysqli.php) 。 – Sirko