#php #mysql #mamp
#php #mysql #mamp
Вопрос:
Я открываю прошлогодний проект и решил попробовать MAMP на новом компьютере, показался довольно крутым.
Похоже, что все запущено, PHP работает, и я перестроил базу данных в phpMyAdmin.
После добавления некоторых тестовых данных в таблицы я выполнил простой тест (см. Файлы ниже), но я не смог ничего извлечь из базы данных.
Когда я загружаю test-basic.php там написано «Подключен к базе данных. Выбранная база данных. Ничего не найдено =(«
Но я протестировал строку в phpMyAdmin (для базы данных ‘likeiwassaying’), и она вернула результаты
Я чувствую себя оооочень близко (и бьюсь над этим часами). Я что-то упускаю прямо у себя под носом?
Приветствуются любые предложения по устранению неполадок,
Джастин
config.php
<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpassword = 'testpassword';
$dbdatabase = 'likeiwassaying';
$config_sitename = 'Cully Mail';
$config_author = 'jk';
$config_basedir = 'http://localhost:8888/cullymail/';
$db = mysql_connect($dbhost, $dbuser, $dbpassword);
if (!$db) {
die('Could not connect: ' . mysql_error());
} else {
echo 'Connected to db. ';
}
$db_selected = mysql_select_db($dbdatabase, $db);
if (!$db_selected) {
die ('Can't use: ' . mysql_error());
} else {
echo 'Selected database. ';
}
mysql_close($db);
?>
test-basic.php
require("config.php");
function test() {
$q = 'SELECT * FROM contacts;';
$result = mysql_query($q);
$numrows = mysql_num_rows($result);
//If it is found (if any row comes back)...
if($numrows == 0) {
echo "Found nothing =(";
} else {
echo "found something";
}
}
test();
?>
Комментарии:
1. Если что-то не так с вашими запросами MySQL, вы всегда можете умереть с сообщением об ошибке:
mysql_query($q) or die(mysql_error());
чтобы посмотреть, что происходит.
Ответ №1:
Вы закрываете подключение к базе данных перед выполнением своей функции test()
. Вы закрываете соединение в конце config.php
, что означает, что к моменту определения функции в test-basic.php
подключение к БД уже больше не существует, и дальнейшие запросы завершатся неудачей.
Обычно вам не нужно вызывать mysql_close()
явно, если только у вас не возникнет необходимости досрочно восстановить ресурсы памяти. PHP закроет соединение, когда скрипт завершится.
$db_selected = mysql_select_db($dbdatabase, $db);
if (!$db_selected) {
die ('Can't use: ' . mysql_error());
} else {
echo 'Selected database. ';
}
// Everything is good so far. you're ready to execute queries, but...
// Don't do this!!!
mysql_close($db);
Комментарии:
1. Итак, я только что проверил старые версии файла, и, по-видимому, эта строка, должно быть, попала туда при каком-то моем устранении неполадок. Спасибо за основной ответ — давно не занимался PHP, но действительно хочу возродить этот проект. Большая помощь!