[英]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.