【问题标题】:php mysql_select_db returns blank pagephp mysql_select_db 返回空白页
【发布时间】:2009-07-29 20:02:45
【问题描述】:

我刚刚开始编写这段代码,当我添加数据库选择并刷新页面时,它没有显示页面上的所有其他 html 或错误,它只是显示为空白。

这就是我得到的-

$link = mysql_connect('vps2.foo.com:3306', 'remote_vhost30', 'password');
if (!$link) {
    die('Could not connect: ' . mysql_error());
}

$db_selected = mysql_select_db('best_of', $link);
if (!$db_selected) {
    die ('Can\'t use foo : ' . mysql_error());
}

$sections_result = "SELECT * FROM sections";
$sections_query = mysql_query($sections_result) or die(mysql_error());
$sections_array = mysql_fetch_array($sections_result) or die(mysql_error());

上面的代码返回一个空白页。如果我注释掉以 $db_selected 开头的行,则页面加载正常。显然它对数据没有任何作用,但没有错误。

有什么问题? (是的,我正在连接到远程服务器,但 $link 不会产生错误)

【问题讨论】:

    标签: php mysql-select-db


    【解决方案1】:

    最后一行代码应该是:

    $sections_array = mysql_fetch_array($sections_query) or die(mysql_error());
    

    您正在尝试从变量$sections_result 中获取行,这是您的查询字符串,而不是结果集。


    打开错误报告,error_reporting(E_ALL) 就像其他答案之一中提到的那样。

    【讨论】:

    • 为什么我在读完答案后总是觉得自己像个傻瓜...哈哈..谢谢你的收获!
    • 我们都对做这样的事情感到内疚。
    【解决方案2】:

    顺便说一句,我怀疑问题是 PHP 抛出了一个错误,但是您禁用了错误的显示 - 因此显示了一个空白页。检查 php.ini 文件中“display_errors”的状态。

    注意:如果这是生产服务器,您应该将 display_errors 设置为关闭。

    【讨论】:

      【解决方案3】:

      通过替换它来检查它真的是那一行:

      $db_selected = mysql_select_db('best_of', $link);
      

      有了这个:

      if (! $db_selected = mysql_select_db('best_of', $link)) die('Unable to select database');
      

      正如 MitMaro 所说,您混淆了 _result 和 _query。这可能会更好:

      $sections_query = "SELECT * FROM sections";
      $sections_result = mysql_query($sections_query) or die(mysql_error());
      $sections_array = mysql_fetch_array($sections_result) or die(mysql_error());
      

      希望有帮助:)

      【讨论】:

      • 如何在一行而不是两行中进行错误检查?
      • 抱歉,在 select_db 行之后我没有看到您的错误检查 :)
      猜你喜欢
      • 2016-03-31
      • 2017-11-20
      • 2021-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多