Я работаю над пользовательской базой данных и настроил ее так, чтобы выпадающие меню в моей регистрационной форме принимали значения из таблиц в базе данных. Проблема в том, что когда я его тестировал, выпадающие списки были пустыми. Естественно, первое, что я сделал, это проверить и проверить мою связь. Для подключения к базе данных, у меня есть файл с именем BaseDAO.php
, который содержит следующее:Не удается подключиться к базе данных (php)
<?php
class BaseDAO {
const SQL_HOST = "localhost";
const SQL_USER = "user6538";
const SQL_PW = "sdWf234Fg";
const SQL_DB = "userDB";
protected $con = null;
function connect() {
$this->con = mysql_connect(self::SQL_HOST, self::SQL_USER, self::SQL_PW);
if(!$this->con) {die('Could not connect to MySQL host: ' . self::SQL_HOST . ' Error: ' . mysql_error()); }
echo "Connected!"; //NOTE: I only just added this to test it
mysql_select_db(self::SQL_DB);
}
function close() {
mysql_close($this->con);
}
}
?>
Так, чтобы проверить это, я добавил echo "Hello World!";
вне класса, так же, как ссылки, а затем я добавил connect();
прямо под ним. Я открыл свою страницу и увидел только Hello World!
... Итак, я попробовал echo connect();
и снова ничего. Затем я попробовал это:
$baseDAO = new BaseDAO();
$baseDAO->connect();
И все же ничего не было. Тогда я закомментирована весь класс и только прибавил:
<?php
//...
//Commented out class
//....
function connect() {
$con = mysql_connect("localhost", "user6538", "sdWf234Fg");
if(!$con) { echo "3"; die('Could not connect: ' . mysql_error()); }
echo "Connected!";
}
echo "Hello World!";
connect();
?>
И вот выход был таков:
Hello World!Connected!
Я не понимаю, почему мой класс не работает ... Это объясняет, почему мои выпадающие списки не работают, поскольку их файлы DAO требуют моего BaseDAO
.
Может, кто-нибудь захочет просветить меня на том, что здесь происходит? Почему мой класс не будет работать?
ПРИМЕЧАНИЕ: Я использую старый проект друга как руководство, поэтому теоретически мой BaseDAO.php
должен работать, так как он работал.
EDIT: Исправлены аргументы во втором подключении функции
Добавить публику перед вашими функциями 'public function connect()' – Daan
Все еще не сработало ... – Laya302
Вы прокомментировали класс, но все же в вашей функции вы используете 'self :: SQL_HOST', как Работает? Он, безусловно, вызывает функцию, но ваши аргументы не имеют смысла для функции mysql_connect –