【问题标题】:mysql_query() expects parameter 2 to be resource error in connection with remote mysql DBmysql_query() 期望参数 2 是与远程 mysql DB 相关的资源错误
【发布时间】:2012-09-07 07:05:30
【问题描述】:

我的 PHP 代码在连接远程 windows 系统 mysql 数据库并返回输出时效果很好。但是,当我使用它连接远程linux系统的mysql数据库时,我得到了以下错误:

"mysql_query() 期望参数 2 是资源,布尔值在 C:\wamp\www\mysqldb.php 第 88 行"

第 88 行有以下内容 "$this->resultQur = mysql_query($query, $this->connID);"

帮我解决这个问题。

是的。在这种情况下,资源为空。但同样适用于 windows mysql 连接。我只在linux中得到了错误。需要对linux环境做些改动吗?

同时放置“print mysql_error();”我收到以下错误

“连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立连接失败,因为连接的主机没有响应。”

【问题讨论】:

  • 看到您的编辑后,您提供的主机名似乎是错误的。 MySQL 是否已安装并正在运行?

标签: php


【解决方案1】:

您提供的资源来自 mysql_connect,但没有成功!

  • 开启错误报告
  • 在您的脚本中构建一些基本的错误处理
  • 不要使用mysql_*,而是使用mysqli_*或者更好的PDO with parameter binding

【讨论】:

    【解决方案2】:

    查询后从mysql_error() 输出返回的字符串。这样你就会看到实际的错误。

    $this->resultQur = mysql_query($query, $this->connID);
    print mysql_error();
    

    【讨论】:

    • 同时放置“print mysql_error();”我收到以下错误“连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立连接失败,因为连接的主机没有响应。”
    【解决方案3】:

    mysql_connect 成功时返回资源,错误时返回布尔值“false”。

    您的连接尝试可能失败,因此 mysql_query 不会成功。

    尝试以下类似的方法,看看究竟是什么导致了错误。

    mysql_connect(..) or die(mysql_error());

    此外,似乎“旧”mysql-library get 在 PHP 中已被弃用,建议切换到更现代的版本,例如 mysqliPDO

    【讨论】:

      【解决方案4】:

      1 .首先把 ini_set(‘display_errors’,1);error_reporting(E_ALL|E_STRICT);在页面开头的代码中

      2 。在查询周围放置 Try catch 并打印异常消息

      尝试 { enter code here }catch (Exception $e) { echo '捕获异常:', $e->getMessage(), "\n"; }

      3 .使用 PDO 然后使用 mysql 对象进行查询,这是一种现代且更好的方法 在查询周围使用 try catch 并尝试

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-05-02
        • 1970-01-01
        • 2012-07-31
        • 1970-01-01
        • 1970-01-01
        • 2012-02-07
        • 2015-01-26
        相关资源
        最近更新 更多