gpt4 book ai didi

php - 为什么我的 PHP 页面没有正确查询数据库?

转载 作者:太空宇宙 更新时间:2023-11-03 11:11:08 24 4
gpt4 key购买 nike

我正在尝试设置一个脚本来查询数据库以填充页面。这是我第一次尝试使用 PHP 进行数据库查询,如果问题真的很愚蠢,请原谅我。

我遇到的问题是页面似乎没有连接到数据库,因为前 2 个调试语句在浏览器中呈现,但之后没有。但是,当我使用 php.exe 在命令行上运行它时,它会正常运行并显示查询中的所有必需数据。

我在 Windows 7 上运行 wampserver 2.2,但它没有在任何浏览器中显示(在 Chrome、Firefox 和 IE9 中测试过。

我当前的代码如下。我也试过将连接移到头部,但这会阻止渲染任何东西,甚至 debug1。 die 声明在任何情况下都不会呈现。

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

编辑

die 语句移动到与连接相同的行后,我在页面中呈现以下内容:

Fatal error: Call to undefined function mysql_connect() in C:\wamp\www\test.php on line 10

编辑

我已将 extension=php_mysql.dll 添加到我的 php.ini 文件并重新启动服务器。我现在得到以下页面:

error messages

编辑

问题解决了。我的最后一个问题是我忘记用实际主机名替换 hostname.of.database

对于以后看到这里的人,解决方法如下:

  1. 在检索结果之前不要关闭连接
  2. 确保通过将 extension=php_mysql.dll 添加到 php.ini 文件来启用 php_mysql 扩展
  3. 重启服务器,清除浏览器缓存,然后重试。

最佳答案

因为您在获取结果之前关闭了连接:

// 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()。它会在脚本执行完成时被调用。

更新:

发布您的错误消息后,您的 WAMP 堆栈似乎未启用 MySQL 扩展。命令行使用的 php.ini 文件可能与 Web 服务器使用的不同。通过调用 phpinfo() 找到正确的 php.ini 并启用 MySQL 扩展。

关于php - 为什么我的 PHP 页面没有正确查询数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8505763/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com