• Error_reporting(E_ALL & ~E_NOTICE) или error_reporting(E_ALL)?

    abler98
    @abler98
    Software Engineer
    1. error_reporting(E_ALL & ~E_NOTICE); // включается вывод всех ошибок, кроме E_NOTICE
    Использовать ini_set('display_errors', 1); // включает показ ошибок
    2. Да, только так вы еще ошибки E_NOTICE будете получать
    3. Одно из преимуществ mysqli в том, что в нем есть ООП стиль (инетерейс) + он работает быстрее mysql
    4. mysql_fetch_array при указании второго параметра может возвращать ассоциативный или численный массив, без него - объединенный
    mysql_fetch_assoc и mysql_fetch_num возвращает только один тип массива
    5. echo '', print_r($res_arr,true), ''; - это вообще ГК, можно просто print_r($res_arr); - выводит массив в виде строки, но если указать второй паремтр true - функция вернет результат, а не выведет.
    Ответ написан
    Комментировать
  • PDO добавление записи в БД. Что делать?

    Melkij
    @Melkij
    PostgreSQL DBA
    Call to a member function prepare() on null

    Почему вы вызываете метод класса подсовывая null вместо объекта?
    А почему там может быть null? Например потому, что вы нигде не инициализируете $this->pdo, к тому же у вас выключены E_NOTICE в error_reporting, чем вы запретили интерпретатору показать подсказку..

    Ну и пример использования вашего класса не подходит к фактическому поведению класса.
    Ответ написан
    Комментировать
  • PDO данные для подключения из стороннего файла?

    uDenX
    @uDenX
    PHP Developer
    Вы в конструктор передаёте данные для подключения, но нигде не используете их. Вместо этого вы используете переменную $config, которая не объявлена в контексте метода. Создайте свойства в классе db и в конструкторе присвойте этим свойствам полученные значения, а в других методах используйте их или например так:
    class db {
        private $config;
    
        public function __construct(Config $config)
        {
             $this->config = $config;
      	 $this->connect();
        }
    
        private function connect()
        {
            $host = $this->config->host;
            ...
        }
    }
    Ответ написан
    2 комментария
  • PDO данные для подключения из стороннего файла?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Чтобы передать в функцию параметр, надо - сюрприз! - заранее сказать ей об этом.

    То есть если ты собираешься передать в функцию какое-то значение, которое потом будет использовано внутри, его надо описать при определении функции:
    function foo($bar) {
        echo $bar;
    }

    А если этого не сделать, то функция не будет знать, откуда у нее вдруг должна взяться переменная $bar.

    Соответственно, чтобы твой код заработал, надо сказать конструктору, что в нем будет переменная $config
    public function __construct(Config $config)
    И вызывать эту функцию в соответствии с данным определением. Это значит, что при определении функции указан 1 параметр, то при вызове надо писать тоже 1 параметр, а не 10.
    То есть вместо
    $db = new db($config->host, $config->user, $config->pass, $config->base, $config->charset);

    должно быть
    $db = new db($config);
    Ответ написан
    Комментировать
  • PDO подключение и ошибка Fatal error: require_once() что делать?

    eXcNightRider
    @eXcNightRider
    FullStack Web Developer | DevOps
    Рабочий вариант:
    config.php
    class Config {
        public $database = [
      'host' => 'localhost',
      'base' => '1111',
      'user' => 'root',
      'pass' => '11111',
      'charset' => 'utf-8'
     ];
    }

    Файл с классом
    Если нет автолоада, то перед объявлением класса поставьте require_once 'config.php';
    class db{
      private $link;
      public function __construct(){
         $config = new Config();
                $this->config = $config->database;
      }
    //etc	
    }
    Ответ написан
    4 комментария
  • PDO подключение и ошибка Fatal error: require_once() что делать?

    gobananas
    @gobananas
    finishhim.ru
    1. Неверно указан путь к фаул config.php, он лежит не в этой директории, используйте проверку file_exist

    2. По стандарту PSR запрещено писать код вне класса, у вас этот код написан вне db, перенесите его, например в конструктор класса
    Ответ написан
    1 комментарий
  • Не работает htmlspecialchars(). Что делать?

    roswell
    @roswell
    и швец, и жнец, и на дуде игрец
    Открой исходник страницы и посмотри, в каком именно виде выводится содержимое $b . <a href='test'>Test</a>
    Ответ написан
    Комментировать
  • Ajax ошибка Requested JSON parse failed как исправить?

    DaFive
    @DaFive
    У вас нет ответа на стороне PHP для аякс-запроса. Вы вставляете данные в БД, а обработчик javascript ждёт в ответ валидный JSON. Напишите в конце php-файла echo json_encode(1); и будет вам рабочий скрипт.
    Ответ написан
    Комментировать