У меня есть несколько классов, которые выполняют некоторые MySQL-запросы и подготовленные операторы. Тем не менее, я теряюсь в том, как включить мой объект PDO в эти классы. Например, я хочу сделать что-то вроде этого: <?php $dbh = new PDO(…); class Foo extends PDO { public $dbh; public function bar() { $this->dbh->prepare('SELECT * FROM table'); $this->dbh->execute(); […]
У меня есть SQL-запрос: $stmt = $pdo->prepare( "SELECT * FROM `products_keywords` WHERE `product_type` = '" . $product_type . "' "); Я не знаю, что будет значением в переменной $ product_type . Но теперь я получаю мужскую рубашку в переменной $ product_type, которая вызывает синтаксическую ошибку в моем SQL-запросе. Я уверен, что эта ошибка связана с […]
У меня есть устаревшее приложение PHP / MySQL, которое вызывает mysql_connect (). Тонны существующего нисходящего кода делают mysql_query() напрямую или через обертку, используя это соединение. Для нового кода, который я разрабатываю в приложении, я хотел бы начать использовать PDO. Если я сделаю PDO-соединение с использованием тех же учетных данных host / user / pass / […]
Я просто пытаюсь выполнить PDO, и я получаю эту ошибку. Fatal error: вызов функции-члена функции fetch () для не-объекта, но разве он уже не находится в объекте $ this-> db? class shoutbox { private $db; function __construct($dbname, $username, $password, $host = "localhost" ) { # db conections try { $this->db = new PDO("mysql:host=".$hostname.";dbname=".$dbname, $username, $password); […]
Я хочу иметь условие, чтобы строка не существовала вообще. $stmt = $conn->prepare('SELECT * FROM table WHERE ID=?'); $stmt->bindParam(1, $_GET['id'], PDO::PARAM_INT); $stmt->execute(); $row = $stmt->fetch(PDO::FETCH_ASSOC); Пробовал if (count($row) == 0) и if($stmt->rowCount() < 0) но ни один из них не работает.
Похоже, что константы класса охватывают только PDO::PARAM_BOOL , PDO::PARAM_INT и PDO::PARAM_STR для привязки. Вы просто связываете десятичные / float / double значения как строки или есть лучший способ их лечения? MySQLi позволяет использовать тип 'd' для двойки, и это удивительно, что PDO не имеет эквивалента, когда кажется, что это лучше для многих других способов.
Пожалуйста, может кто-нибудь сказать мне, что я здесь делаю неправильно? Я просто извлекаю результаты из таблицы, а затем добавляю их в массив. Все работает так, как ожидается, пока я не проверю пустой результат … Это получает совпадение, добавляет его в мой массив и повторяет результат, как и ожидалось: $today = date('Ym-d', strtotime('now')); $sth = $db->prepare("SELECT […]
У меня есть несколько старых запросов mysql_query в моем коде, который я хочу преобразовать в PDO, но я изо всех сил стараюсь работать. мой оригинальный код был: mysql_query("UPDATE people SET price='$price', contact='$contact', fname='$fname', lname='$lname' WHERE id='$id' AND username='$username' ") or die(mysql_error()); теперь я пытаюсь: $sql = "UPDATE people SET price='$price', contact='$contact', fname='$fname', lname='$lname' WHERE id='$id' […]
Версия PHP 5.3.3 на CentOS (x86_64, RHEL 6) По-видимому, моя установка PHP была настроена для исключения Mysqli и отключения PDO по какой-то причине. Поэтому я считаю, что это то, что заставляет их не работать, когда я пытаюсь использовать команду php из оболочки. Я могу загружать mysqli и pdo через HTTP просто отлично, но они не […]
У меня есть следующий код: $check = $dbh->prepare("SELECT * FROM BetaTesterList WHERE EMAIL = ?"); $check->execute(array($email)); $res = $check->fetchAll(); if (!($res['EMAIL'])){ $stmt = $dbh->prepare("INSERT INTO BetaTesterList(EMAIL) VALUES (?)"); $stmt->execute(array($email)); } else { $return['message'] = 'exists'; } Однако это все еще вставляет значение, хотя запись уже существует в БД. Как я могу это предотвратить?