繁体   English   中英

PHP不显示MYSQL结果

[英]PHP not displaying MYSQL result

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

我知道已经建立了数据库连接,因为没有错误,但是我看不到为什么结果集没有显示在屏幕上,因为我说它在Windows计算机上运行良好。

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

请问有人可以帮忙,因为我不知道该怎么办?

脚本如下:

$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);

您可以执行各种操作来调试它。

  • 显示所有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()); 

旁注 :没有理由选择两次使用哪个数据库。

很难找出问题所在……因此添加一些基本的错误检查,例如更改此内容

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

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

这将向您显示您从查询中得到的错误(如果有一个错误)..您在mysql_query文档中看不到如果发生错误则返回boolean

还要注意,您在关闭MySQL连接的变量名中有一个错误:

mysql_close($con);

应该

mysql_close($conn);

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

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

我唯一能想到的是Mac文件系统区分大小写,而Windows不区分大小写,因此可能是因为您拼写了表名。 在任何情况下,您都应该这样做

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

查看错误

我认为您应该使用改进的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();

        }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM