簡體   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