2012-06-20 80 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