Я пытаюсь настроить скрипт, который запрашивает базу данных для заполнения страницы.Это мой первый набросок запросов к базе данных в PHP, поэтому простите меня, если проблема действительно глупая.
Проблема, с которой я столкнулся, заключается в том, что страница, похоже, не подключается к базе данных, так как первые 2 отладкиоператоры отображаются в браузере, но ничего после них нет.однако, когда я запускаю его в командной строке с помощью php.exe, он работает правильно и отображает все необходимые данные из запроса.
Я запускаю wampserver 2.2 в Windows 7, и он не отображается ни в одном браузере (протестировано в 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 и перезапустил серверы. Теперь я получаю следующую страницу:
РЕДАКТИРОВАТЬ
Проблема решена. Моя последняя проблема состояла в том, что я забыл заменить hostname.of.database
на фактическое имя хоста.
Для тех, кто читает это в будущем, решение будет следующим:
- не закрывать соединение до получения результатов
- убедиться, что расширение php_mysql включено, добавив
extension=php_mysql.dll
в файл php.ini - , перезагрузитесервер, очистите кеш браузера и попробуйте снова.