Я пытаюсь понять, как использовать PDO с классом «соединение». class db { private static $dbh; private function __construct(){} private function __clone(){} public static function connect() { if(!self::$dbh){ self::$dbh = new PDO("mysql:host=localhost;dbname=database", "user", "password"); self::$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } return self::$dbh; } final public static function __callStatic( $chrMethod, $arrArguments ) { $dbh = self::connect(); return call_user_func_array(array($dbh, $chrMethod), $arrArguments); […]
Я пытаюсь изучить OOP PHP и PDO, это немного запутанно. Прочитав много статей, я решил создать свой первый проект. И вот мой код. class db{ private static $instance = NULL; private static $DSN = 'mysql:host=localhost;dbname=firstproject'; private function __construct(){ } public static function getInstance(){ if(!self::$instance){ self::$instance = new PDO(self::$DSN,'root',''); self::$instance->exec('SET NAMES utf8'); } return self::$instance; } […]
Следуя этому вопросу , кажется, что дублирующаяся проблема может быть решена путем использования кода __autoload ниже, function __autoload($class_name) { include AP_SITE."classes_1/class_".$class_name.".php"; } $connection = new database_pdo(DSN,DB_USER,DB_PASS); var_dump($connection); результат, object(database_pdo)[1] protected 'connection' => object(PDO)[2] но это только загружает классы из одного каталога, а что касается других каталогов? Потому что я группирую классы в разных каталогах. Поэтому […]
У меня возникла проблема при попытке вернуть данные объекта из моей базы данных. Я следил за этим учебным пособием, чтобы создать обертку DB и пытаюсь расширить ее функциональность в соответствии с моими потребностями. Моя проблема заключается в том, что когда я использую метод «get» класса DB для возврата данных, он также возвращает экземпляр самого объекта […]
это мой текущий класс базы данных: class Database { private $db; function Connect() { $db_host = "localhost"; $db_name = "database1"; $db_user = "root"; $db_pass = "root"; try { $this->db = new PDO("mysql:host=" . $db_host . ";dbname=" . $db_name, $db_user, $db_pass); } catch(PDOException $e) { die($e); } } public function getColumn($tableName, $unknownColumnName, $columnOneName, $columnOneValue, $columnTwoName = […]
Я занимаюсь разработкой веб-приложения (действительно, это хобби, и я пытаюсь научить себя дизайну, и что может быть лучше, чем делать это :). Во всяком случае, я думал о том, как я буду иметь дело с моей базой данных. Мне нравится PDO , и я думал о том, чтобы использовать PDO в моем классе абстракции. Я […]
Я думаю, что у меня есть проблема в понимании того, как работает ООП. Я уже изменил код, который он работает, но это не тот способ, который я считаю. Следующий сценарий (Нет, я не создаю userlogin самостоятельно, его действительно просто для локального разработчика, чтобы лучше понять ООП): У меня есть файл database.php: class Database { /* […]
Я хочу заполнить класс конструктором, используя FETCH_INTO PDO: class user { private $db; private $name; function __construct($id) { $this->db = …; $q = $this->db->prepare("SELECT name FROM users WHERE id = ?"); $q->setFetchMode(PDO::FETCH_INTO, $this); $q->execute(array($id)); echo $this->name; } } Это не работает. Нет ошибки, просто ничего. У FETCH_ASSOC нет ошибок, FETCH_ASSOC отлично работает. Что случилось с […]
Я использую абстрактный класс с PDO. Я хочу знать, нужно ли каждый раз $conn переменную $conn , или если она делает это сама по себе, когда скрипты заканчиваются? Можете ли вы также сказать мне, с таким типом структуры, что было бы лучшим способом свести значение $conn ? abstract class DB_Connection { protected static $tbl_admin = […]
ОБНОВЛЕНО: Изменен код для текущего кода рабочего класса с использованием PDO вместо устаревших методов На исходный вопрос был дан ответ, и проблема решена. Фил вырос с использованием PDO вместо традиционного SQL, поэтому, когда этот класс находится в зачаточном состоянии, я решил начать процесс миграции. class db { private static $connection; const __DB__HOST__ = __DB__HOST__; const […]