【问题标题】:PHP ignoring mysql_connect requestsPHP忽略mysql_connect请求
【发布时间】:2008-12-24 18:54:57
【问题描述】:

我是 PHP 新手,已经安装在 Linux 上以启动(也是新手)。 无论如何,PHP 正在运行...

<?
$myVar = "test";
echo($myVar);
?>

... 工作得很好。

但是……

<?

$dbhost = "localhost";
$dbuser = "myuser";
$dbpass = "mypass";
$dbname = "mydb";

echo($dbhost . "-" . $dbuser . "-" . $dbpass . "-" . $dbname);

$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die("Unable to connect to MySQL");
print $conn;

mysql_close($conn);

phpInfo();
?>

... 什么都不做。也没有错误,什么都没有。就好像代码根本不存在一样。

有什么帮助吗?

【问题讨论】:

    标签: php mysql linux


    【解决方案1】:

    尝试执行以下操作:

    1. 首先确保display_errors 在您的php 配置文件中打开。还要设置error_reporting 的级别以显示所有错误,包括严格(error_reporting = E_ALL|E_STRICT)。进行更改后,重新启动您的网络服务器。
    2. 运行phpinfo(),并检查mysql 扩展是否已安装并正常工作。如果不确定您在 php 配置文件中取消了注释(再次提醒,请记住在每次更改配置文件后重新启动 apache)。
    3. 此时 MySQL 应该已加载并正常工作,您应该能够从错误(如果仍然存在)中判断出问题所在。
    4. 还可以尝试dumping 连接结果 ($conn) 的内容,看看它包含什么。
    5. 一般来说,我建议使用长 php 标签(

    【讨论】:

    • 好的,这就是一个开始。启用错误,什么都没有。但是 phpinfo() 告诉我以下内容。除了在配置命令部分之外,在输出中找不到 mysql,我看到了 --without-mysql。我假设这是不言自明的。但是,我该如何开启mysql呢?
    • 您是否取消了 PHP 配置文件中 mysql 扩展的注释?您还检查了 MySQL 服务器是否正在运行?
    • 我在 php.ini 文件中看不到任何带有注释掉的 mysql 关系的内容。是的,mysqladmin 和coldfusion 都从mysql 返回结果。 apache 是否需要任何类型的 mysql 模块?
    • 我已经添加了我的答案以及另一个调试建议 (4,5),因为其他人认为问题可能与环绕代码有关。请发布更多代码。
    • 我已经使用此页面上的所有代码编辑了我的原始问题。如果我注释掉 $conn 行,我会得到结果、错误或其他任何东西。如果我留下 $conn 行,它会停止死,不显示 phpInfo() 或任何东西。
    【解决方案2】:

    尝试将其添加到代码的顶部:

    error_reporting(E_ALL);
    

    【讨论】:

      【解决方案3】:

      如果它什么都不做,是不是表示它连接正常?您期望该语句的输出是什么?

      你可以试试

      error_reporting(E_ALL);
      $conn = mysql_connect("localhost", "myusername", "mypassword");
      if(!$conn) {
          echo 'Unable to connect';
      } else {
          echo 'Connected to database';
      }
      var_dump($conn);
      

      编辑:解决评论说你有一个 mysql 查询设置,如果你没有看到“成功”,这意味着你的查询有问题。在上面添加

      $sth = mysql_query("SELECT * FROM tablename");
      if(!$sth) {
          echo 'unable to query: ' . mysql_error();
      } else {
          echo 'success';
      }
      

      【讨论】:

      • 我在 if (mysql_query("select * from table")) { print "success"; 下有 if 语句}
      【解决方案4】:

      是否有比您向我们展示的更多的代码?您刚刚建立的块建立了连接。如果成功了你就什么都看不到了,你必须使用$conn 来做一些事情。

      要确认,请尝试将密码更改为故意错误的值,然后查看是否出现错误。如果这样做,代码就可以正常工作。

      【讨论】:

        【解决方案5】:

        连接到数据库

        $conn = mysql_connect("localhost", "myusername", "mypassword") or die("Unable to connect");
        

        如果连接成功,将没有 (visible() 结果。但是,一旦运行此语句,就可以使用其他 mysql 函数对数据库进行查询。

        连接到数据库告诉你的程序“嘿,我想和这个数据库对话”。

        【讨论】:

          【解决方案6】:

          此代码应该创建一个数据库连接,仅此而已。你希望看到什么?

          试试这个

          <?php
          $conn = mysql_connect("localhost", "myusername", "mypassword") 
          or die("Unable to connect");
          print("code sample");
          
          print $conn;
          
          ?>
          

          它应该打印出类似“resource #1”...

          然后您可以使用该连接与数据库服务器通信

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2014-02-14
            • 2013-03-07
            • 2019-07-12
            • 2020-01-17
            • 2015-02-23
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多