PHP不显示MYSQL结果

时间:2012-03-20 17:04:24

标签: php mysql

我在Windows平台上创建了一个脚本,该脚本连接到mysql数据库并返回表的结果。我写的一个非常基本的脚本只是测试我的连接工作。该脚本在我的Windows机器上工作正常,但在我的新Mac上没有。在Mac上它根本不显示任何记录。

我知道数据库连接已经建立,因为没有错误,但是我不明白为什么结果集没有显示在屏幕上,因为我说它在我的Windows机器上工作正常。

Mac有mysql(带数据)和运行php的apache。

请帮助我,因为我现在不知道该怎么办?

下面的脚本:

$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = 'root';

$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to mysql');

$dbname = 'test';

mysql_select_db($dbname);

mysql_select_db("test", $conn);

$result = mysql_query("SELECT * FROM new_table");

while($row = mysql_fetch_array($result))
  {
  echo $row['test1'] . " " . $row['test2'] . " " . $row['test3'];
  echo "<br />";
  }

mysql_close($con);

5 个答案:

答案 0 :(得分:1)

你可以做很多事情来调试它。

  • 显示所有PHP错误。

    ini_set('display_errors','On');
    ini_set('error_reporting',E_ALL);
    
  • 捕获所有可能的MySQL错误,而不仅仅是关于您是否成功连接的错误。

    mysql_select_db("test", $conn) or die(mysql_error());
    mysql_select_db($dbname) or die(mysql_error());
    $result = mysql_query("SELECT * FROM new_table") or die(mysql_error());
    

旁注:没有理由选择您希望使用两次的数据库。

答案 1 :(得分:0)

很难看出有什么问题...所以添加一些基本的错误检查,比如改变这个

$result = mysql_query("SELECT * FROM new_table");

$result = mysql_query("SELECT * FROM new_table") or die(mysql_error());

这会显示您从查询中获得的错误(如果有的话)..您在mysql_query boolean看到它会返回mysql_close($con); ,如果有的话是一个错误

另请注意,关闭MySQL连接的变量名中有错误:

mysql_close($conn);

应该是

{{1}}

答案 2 :(得分:0)

在获取行之前检查SELECT查询是否成功。

<?php
$result = mysql_query("SELECT * FROM new_table");
if(!$result)
     die('SQL query failed: ' . mysql_error());

答案 3 :(得分:0)

我唯一能想到的是Mac文件系统区分大小写,而Windows不是这样,可能是你拼错了表的名称。在任何cas你应该做

$result = mysql_query("SELECT * FROM new_table") or die("error:".mysql_error());

查看错误

答案 4 :(得分:0)

我认为你应该使用改进的PHP mysql驱动程序

        try
        {

            $db = new mysqli("localhost","root","root","test");

            if ($db->connect_errno) {
                throw new Exception($db->connect_error);
            }

            if ($result = $db->query("SELECT * FROM new_table")) {
                printf("Select returned %d rows.\n", $result->num_rows);


                while($row = $result->fetchAssoc())
                  {
                    echo $row['test1'] . " " . $row['test2'] . " " . $row['test3'];
                    echo "<br />";
                  }


                /* free result set */
                $result->close();
            }


            $db->close();   
        }
        catch(Exception $e)
        {
                printf("Database Error: %s\n", $e->getMessage());
                exit();

        }