警告:mysql_error():提供的参数不是有效的MySQL-Link资源

时间:2010-02-06 17:54:50

标签: php mysql

  

可能重复:
  Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result

        $err = mysql_query("INSERT INTO tridy (id,NazevTridy,url) VALUES (
            '$i',
            '$tridy->find('div[class=rozvrhseznam]', 0)->find('a[href]', $i)->outertext',
            '$tridy->find('div[class=rozvrhseznam]', 0)->find('a[href]', $i)->href')");
        mysql_error($err); // line 97
  

警告:mysql_error():提供的参数不是97行/hosting/www/cran-web.com/www/rozvrh/engine.php中有效的MySQL-Link资源

---第2-6行:

$username="*****.com";
$password="*********";
$database="*********";
mysql_connect('127.0.0.1', $username, $password) or die('Could not connect'.mysql_error());
mysql_select_db($database) or die( "Cannot select db.");

当我尝试执行查询时,我收到此错误。你能说出错误信息是什么意思以及如何修复它吗?

4 个答案:

答案 0 :(得分:1)

mysql_error($ ERR);删除参数! 它需要链接到资源而不是错误数。

链接用于识别不同的连接(您可以使用mysql_connect检索一个),如果您需要更多,请阅读此内容。

答案 1 :(得分:0)

您正在将查询传递给mysql_error,您需要传递链接标识符。

答案 2 :(得分:0)

mysql_error()需要“链接资源”而不是“结果资源”。正确的方法是:

$username="*****.com";
$password="*********";
$database="*********";
$connection = mysql_connect('127.0.0.1', $username, $password) or die('Could not connect'.mysql_error());
mysql_select_db($database, $connection) or die( "Cannot select db.");


$err = mysql_query("INSERT INTO tridy (id,NazevTridy,url) VALUES (
        '$i',
        '$tridy->find('div[class=rozvrhseznam]', 0)->find('a[href]', $i)->outertext',
        '$tridy->find('div[class=rozvrhseznam]', 0)->find('a[href]', $i)->href')", $connection);
mysql_error($connection); // line 97

注意使用$connection。 Wile $连接可以随处丢弃,如

mysql_error();

默认使用上次打开的连接或打开新连接。虽然取决于默认连接是坏的。您可能还想查看mysqliPDO作为与MySQL交谈的替代方法。

答案 3 :(得分:0)

另请注意,mysql_query()处理INSERT会在成功时返回true,并在失败时返回false

因此,命名变量$err会产生误导,if($err)意味着不会发生错误,反之亦然。

更好:

$success = mysq_query("INSERT....");

if(!$success) {
    // use of $connection is pointed to in other answers
    $error_msg = mysql_error($connection); 

    // so some error handling
}

关于mysql_error()

  

参数:MySQL连接。如果未指定链接标识符,则假定mysql_connect()打开的最后一个链接

和返回值:

  

返回上一个MySQL函数的错误文本,如果没有错误,则返回''(空字符串)。

所以你也一些带有返回值的东西。只是打电话给mysql_error()没用!

相关问题