• Какие есть best practices в работе с PDO?

    @DukeRaul Автор вопроса
    Спасибо за ваши ответы, очень помогли. По совету написал небольшой синглтон, подскажите это нормальная практика кода?

    <?php
    class DB {
        protected static $_instance = null;
        public $_pdo = null;
    
        private function __construct() {
        try {
            $this -> _pdo = new PDO(
                    'mysql:host=localhost;dbname=xxx', 'root', 'xxx');
            $this -> _pdo -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
            $this -> _pdo -> query("SET NAMES utf8");
            $this -> _pdo -> query("SET CHARACTER SET utf8");
            } 
        catch (PDOException $e) {
            print "Error!: " . $e->getMessage() . "<br/>";
            die();
            }
        }
    
        public static function getInstance() {
        if (self::$_instance === null) {
            self::$_instance = new self;
            } 
        return self::$_instance;
        }
    
        private function __clone() {
        }
    
        private function __wakeup() {
        }     
    }
    ?>


    Обращение к инстансу:

    $order_ticket_query = "CREATE TABLE IF NOT EXISTS `:table_name` (
                        `ID` INT AUTO_INCREMENT NOT NULL,
                        `oID` varchar(10),
                        `week` INT,
                        `name` varchar(70),
                        `expired` DATETIME,
                        `created` DATETIME,
                        `use` BOOL,
                        PRIMARY KEY (`ID`)
                        ) CHARACTER SET utf8 COLLATE utf8_general_ci;";
                               
            $stmt = DB::getInstance() -> _pdo -> prepare($order_ticket_query);
            $stmt -> execute(array(':table_name' => 'order_ticket'));
    Ответ написан
  • Где искать PHP & Mysql задачи для начинающих?

    @DukeRaul
    Тоже новичок и тоже ищу практики, для себя выбрал путь все время практиковаться на реальных нужных(!) задачах. Например, у нас в конторе доставляют обеды в офис, у организации, которая этим занимается каждую неделю вывешивается меню в экселе на сайте. Скачивать его, заполнять и отправлять - дюже не очень удобно, вот и проект для развития! Писать цмс в стол - не уверен, что у меня бы было достаточно мотивации для такого, хотя безусловно очень полезно.
    Ответ написан