Компания, в которой я работаю, в настоящее время использует некоторые базовые функции для абстрагирования библиотек OCI в качестве средства для подключения к БД. Мы рассматриваем возможность переключения на PHP-объект PDO, но из некоторых быстрых запросов выглядит, что драйвер Oracle немного зреет, чем другие драйверы PDO. Я был бы признателен за pro / cons за PDO […]
Я попытался кэшировать свой объект User в PHP с помощью memcache, но при использовании PDO я получаю сообщение об ошибке. Я добавил функцию __sleep и __wakeup. User.php /** * @var PDO */ protected $db; public function __construct() { $this->db = getInstanceOf('db'); } public function __destruct() { } public function __sleep() { return array('db'); } public […]
Мой вопрос довольно прост: возможно ли использовать функции store_result() и bind_result() с PHP PDO? Вот пример кода, с которым я столкнулся: $stmt = $mysqli->prepare("SELECT id, username, password, salt FROM members WHERE email = ? LIMIT 1")) { $stmt->bind_param('s', $email); // Bind "$email" to parameter. $stmt->execute(); // Execute the prepared query. $stmt->store_result(); $stmt->bind_result($user_id, $username, $db_password, $salt); […]
Когда я создаю базу данных без использования параметра bind, он работает отлично. $login = 'root'; $password = 'root'; $dsn = "mysql:host=localhost"; $opt = array( // any occurring errors wil be thrown as PDOException PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, // an SQL command to execute when connecting PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'UTF8'" ); // Making a new PDO […]
Я не могу получить сообщение об ошибке из PDO: #$dbh->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING ); try { $sth = $dbh->prepare('@$%T$!!!'); print_r($sth); print_r($dbh->errorInfo()); } catch (PDOException $e) { echo $e->getMessage(); } Он выдаёт только: PDOStatement Object ( [queryString] => @$%T$!!! ) Array ( [0] => 00000 [1] => [2] => ) setAttribute ничего не помогает. Это PHP 5.3.3. […]
У меня есть запрос, и я хочу установить последний ID. Идентификатор поля – это первичный ключ и автоматически увеличивается. Я знаю, что я должен использовать это утверждение: LAST_INSERT_ID() Это утверждение работает с таким запросом: $query = "INSERT INTO `cell-place` (ID) VALUES (LAST_INSERT_ID())"; Но если я хочу получить идентификатор, используя этот оператор: $ID = LAST_INSERT_ID(); Я […]
Я пытаюсь выполнить поиск по PDO-классу php (драйвер mysql). У меня есть следующий запрос, работающий с клиентом MySQL (имена таблиц изменены для защиты невинных): SELECT hs.hs_pk, hs.hs_text, hs.hs_did, hd.hd_did, hd.hd_text, hv.hv_text, hc.hc_text FROM hs LEFT JOIN hd ON hs.hs_did = hd.hd_did LEFT JOIN hd ON hd.hd_vid = hv.hv_id LEFT JOIN hc ON hd.hd_pclass = hc.hc_id […]
Мой сервер запускает CentOS 6.4 с MySQL 5.1.69, установленным с помощью yum с репозиториями CentOS, и PHP 5.4.16, установленным с использованием yum с репозиториями ius. Edit3 Обновлено до версии MySQL Server: 5.5.31 Распространяется проектом сообщества IUS, и ошибка все еще существует. Затем изменили библиотеку на mysqlnd и, похоже, устранили ошибку. Тем не менее, с этим […]
Просто довольно простой вопрос относительно PDO по сравнению с MySQLi. С MySQLi, чтобы закрыть соединение, которое вы могли бы сделать: $this->connection->close(); Однако с PDO он заявляет, что вы открываете соединение, используя: $this->connection = new PDO(); но чтобы закрыть соединение, вы установили его null . $this->connection = null; Правильно ли это и действительно ли это освободит […]
У меня есть 2 поля базы данных `decval` decimal(5,2) `intval` int(3) У меня есть 2 запроса pdo, которые их обновляют. Тот, который обновляет int, работает нормально $update_intval->bindParam(':intval', $intval, PDO::PARAM_INT); но я не могу обновить десятичное поле. Я пробовал 3 пути ниже, но ничего не работает $update_decval->bindParam(':decval', $decval, PDO::PARAM_STR); $update_decval->bindParam(':decval', $decval, PDO::PARAM_INT); $update_decval->bindParam(':decval', $decval); Кажется, проблема […]