我在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);发布于 2012-03-21 01:06:43
很难看出哪里出了问题……所以添加一些基本的错误检查,比如修改这个
$result = mysql_query("SELECT * FROM new_table");至
$result = mysql_query("SELECT * FROM new_table") or die(mysql_error());这将显示您从查询中得到的错误(如果有)。您将在mysql_query的documentation中看到,如果出现错误,它将返回一个boolean
另请注意,用于关闭MySQL连接的变量名有误:
mysql_close($con);应该是
mysql_close($conn);发布于 2012-03-21 01:08:27
你可以做很多事情来调试它。
PHP
Ini_set(‘display_error’,'On');ini_set('error_reporting',E_ALL);
Mysql_select_db(“mysql_select_db”,$conn)或die(mysql_error());mysql_select_db($dbname)或die(mysql_error());$result = mysql_query("SELECT * FROM new_table")或test
旁注::没有理由选择要使用两次的数据库。
发布于 2012-03-21 01:07:41
在提取行之前,检查SELECT查询是否成功。
<?php
$result = mysql_query("SELECT * FROM new_table");
if(!$result)
die('SQL query failed: ' . mysql_error());https://stackoverflow.com/questions/9791511
复制相似问题