为什么我的PHP页面不能正确查询数据库?
我正在尝试设置一个脚本来查询数据库以填充页面。这是我第一次尝试使用PHP进行数据库查询,如果问题真的很愚蠢,请原谅 我遇到的问题是,页面似乎没有连接到数据库,因为前两个调试语句在浏览器中呈现,但它们之后的任何语句都没有。但是,当我使用php.exe在命令行上运行它时,它会正常运行并显示查询中所有必需的数据 我在Windows7上运行WampServer2.2,它不会显示在任何浏览器中(在Chrome、Firefox和IE9中测试) 下面是我当前的代码。我也尝试过将连接移动到头部,但这会阻止任何东西(甚至是debug1)呈现。在任何情况下都不会呈现die语句为什么我的PHP页面不能正确查询数据库?,php,mysql,wampserver,Php,Mysql,Wampserver,我正在尝试设置一个脚本来查询数据库以填充页面。这是我第一次尝试使用PHP进行数据库查询,如果问题真的很愚蠢,请原谅 我遇到的问题是,页面似乎没有连接到数据库,因为前两个调试语句在浏览器中呈现,但它们之后的任何语句都没有。但是,当我使用php.exe在命令行上运行它时,它会正常运行并显示查询中所有必需的数据 我在Windows7上运行WampServer2.2,它不会显示在任何浏览器中(在Chrome、Firefox和IE9中测试) 下面是我当前的代码。我也尝试过将连接移动到头部,但这会阻止任何东
<html>
<body>
debug1<br />
<?php
echo "debug2<br />";
$con = mysql_connect("hostname.of.database","username","password") die('Could not connect: ' . mysql_error());
echo "debug3<br />";
mysql_select_db("dbname",$con);
$result = mysql_query("SELECT * FROM Mail");
while ($row = mysql_fetch_array($result))
{
echo $row['Sender'];
echo "<br />";
echo $row['Subject'];
echo "<br />";
echo $row['Message'];
echo "<br />";
echo "<br />";
}
echo "debug4<br />";
mysql_close($con);
?>
</body>
</html>
编辑
我已经在php.ini文件中添加了extension=php_mysql.dll
,并重新启动了服务器。我现在看到以下页面:
编辑
问题解决了。我的最后一个问题是,我忘记用实际的主机名替换.database的hostname.of
对于将来阅读本文的人,解决方案如下:
extension=php\u mysql.dll
,确保启用了php\u mysql扩展因为您要在获取结果之前关闭连接:
// Don't do this!!!
//mysql_close($con);
while ($row = mysql_fetch_array($result))
{
echo $row['Sender'];
echo "<br />";
echo $row['Subject'];
echo "<br />";
echo $row['Message'];
echo "<br />";
echo "<br />";
}
//不要这样做!!!
//mysql_close($con);
while($row=mysql\u fetch\u数组($result))
{
echo$row['Sender'];
回声“
”;
echo$row['Subject'];
回声“
”;
echo$row['Message'];
回声“
”;
回声“
”;
}
除非在创建另一个连接时特别需要释放一些内存或破坏连接,否则通常不需要显式调用mysql\u close()
。脚本完成执行时将调用它
更新:
发布错误消息后,您的WAMP堆栈似乎未启用MySQL扩展。命令行使用的php.ini文件可能与web服务器使用的不同。通过调用
phpinfo()找到正确的php.ini
并启用MySQL扩展。因为您要在获取结果之前关闭连接:
// Don't do this!!!
//mysql_close($con);
while ($row = mysql_fetch_array($result))
{
echo $row['Sender'];
echo "<br />";
echo $row['Subject'];
echo "<br />";
echo $row['Message'];
echo "<br />";
echo "<br />";
}
//不要这样做!!!
//mysql_close($con);
while($row=mysql\u fetch\u数组($result))
{
echo$row['Sender'];
回声“
”;
echo$row['Subject'];
回声“
”;
echo$row['Message'];
回声“
”;
回声“
”;
}
除非在创建另一个连接时特别需要释放一些内存或破坏连接,否则通常不需要显式调用mysql\u close()
。脚本完成执行时将调用它
更新:
发布错误消息后,您的WAMP堆栈似乎未启用MySQL扩展。命令行使用的php.ini文件可能与web服务器使用的不同。通过调用
phpinfo()找到正确的php.ini
并启用MySQL扩展。您可能希望打开php错误报告以获取更详细的错误消息:
<?php ini_set(‘display_errors’,1);
error_reporting(E_ALL|E_STRICT); ?>
您可以在此处阅读更多信息:
您可能希望打开php错误报告以获取更详细的错误消息:
<?php ini_set(‘display_errors’,1);
error_reporting(E_ALL|E_STRICT); ?>
您可以在此处阅读更多信息:
在您继续之前,有几条建议-
ini_set('display_errors','On');
和error_reporting(E_ALL);
$conn=mysql\u connect($host,$user,$pass)或die(mysql\u error());
Shai.在你继续之前,有几条建议-
ini_set('display_errors','On');
和error_reporting(E_ALL);
$conn=mysql\u connect($host,$user,$pass)或die(mysql\u error());
Shai.您关闭连接太早。mysql\u fetch\u array()函数需要连接保持打开状态。有关详细信息,请查看错误日志,或将此内容放在脚本顶部:
ini\u集(“display\u errors”,true)
-这将为您提供有关此问题和其他问题的更多信息。我建议您在熟悉使用mysql\u查询
API之前,先花时间学习如何使用mysqli,因为这些API不安全,并且在PHP6中已被弃用。您的致命错误将表明PHP mysql扩展未从PHP.ini加载。您可以太快关闭了连接。mysql_fetch_array()函数需要连接保持打开状态。有关详细信息,请查看错误日志,或将其放在脚本的顶部:ini_集(“display_errors”,true)
-这将为您提供有关此问题和其他问题的更多信息。我建议您在熟悉使用mysql\u查询
API之前,先花些时间学习如何使用mysqli,因为这些API不安全,并且在PHP6中被弃用。您的致命错误将表明PHP mysql扩展未从PHP.ini加载。此did没有解决问题。在第二个调试语句之后,它仍然没有呈现。@ewok那么当您设置display\u errors
打开时,会出现一些其他问题。可能是dbname
上的数据库权限不正确。如何检查php.ini文件中是否启用了mysql扩展名?根据wamp托盘图标,mysq我被选中了,我被选中了