Я конвертировал приложение, чтобы использовать подготовленные инструкции PDO, а не mysqli, и у меня возникает странная проблема. У меня есть некоторые записи в базе данных, где ожидается, что поле будет null. Не 'null' (строка), или '' (пустая строка), но NULL. Я строю свои запросы динамически, поэтому в прошлом, когда я сталкивался с нулевой переменной в […]
Я нашел много способов использовать инструкцию exec для PDO, но я не уверен, что это помогает мне. Я понимаю, что я должен использовать функцию execute () для подготовленных операторов. Я обновляю строку с данными из пользовательского ввода, поэтому я бы хотел использовать подготовленный оператор вместо вызова query (). Мой код выглядит следующим образом: $dbh = […]
Я использую поле бит (1) для хранения логических значений и записи в таблицу с помощью подготовленных инструкций PDO. Это тестовая таблица: CREATE TABLE IF NOT EXISTS `test` ( `SomeText` varchar(255) NOT NULL, `TestBool` bit(1) NOT NULL DEFAULT b'0' ) ENGINE=MEMORY DEFAULT CHARSET=latin1; Это тестовый код: $pdo = new PDO("connection string etc") ; $statement = $pdo->prepare('INSERT […]
Я хочу выполнить следующий запрос mysql: SELECT * FROM `gc_users` WHERE `name` LIKE '%anyname%' Я пробовал это без успеха: $stmt = $dbh->prepare("SELECT * FROM `gc_users` WHERE `name` LIKE :name"); $stmt->bindParam(':name', "%" . $name . "%"); $stmt->execute(); $stmt = $dbh->prepare("SELECT * FROM `gc_users` WHERE `name` LIKE '%:name%'"); $stmt->bindParam(':name', $name); $stmt->execute(); Поэтому я спрашиваю вас, можно ли […]
Я хотел бы знать, можно ли вставить несколько строк с помощью одного подготовленного оператора. Ниже приведен пример того, как я обычно вставляю одну строку в db: $params=array(); $params[':val1']="val1"; $params[':val2']="val2"; $params[':val3']="val3"; $sql="INSERT INTO table VALUES (col1,col2,col3) VALUES (:val1,:val2,:val3)"; $stmt=DB::getInstance()->prepare($sql); $stmt->execute($params); Значения, которые я хочу вставить, будут поступать из массива, например: $ values [0] ['val1']; $ значения […]
Для этого запроса необходимо использовать mysql_real_escape_string ? Любое улучшение или запрос в порядке? $consulta = $_REQUEST["term"]."%"; ($sql = $db->prepare('select location from location_job where location like ?')); $sql->bind_param('s', $consulta); $sql->execute(); $sql->bind_result($location); $data = array(); while ($sql->fetch()) { $data[] = array('label' => $location); } В этом случае важна скорость запроса.
Возможно ли передать имя столбца в качестве параметра в подготовленное заявление MySQL? Возьмем следующий пример: UPDATE Images SET :placement = :imageURL WHERE ID = :titleID; PDO добавляет ' вокруг каждого параметра, поэтому средняя линия выше: SET 'Homepage' = '1.jpg' Какой MySQL не нравится. Есть ли способ включить параметры для имен полей в заявлениях PDO и […]
Учитывая что-то вроде DB()->prepare("SELECT * FROM mysql.general_log WHERE user_host LIKE ?"); $statement->execute( array('%console%') ); foreach($statement as $record){ var_dump($record); } Содержание general_log *************************** 1. row *************************** event_time: 2011-04-20 14:27:59 user_host: REDACTED[REDACTED] @ REDACTED [192.168.56.101] thread_id: 30 server_id: 0 command_type: Connect argument: REDACTED@REDACTED on REDACTED *************************** 2. row *************************** event_time: 2011-04-20 14:27:59 user_host: REDACTED[REDACTED] @ REDACTED [192.168.56.101] […]
Истинные эксперты в области безопасности PHP, это PDO, или мне было бы хорошо с классом Active Record Codeigniter? Я прочитал http://codeigniter.com/forums/viewthread/179618/ и не уверен на 100%. Обычно я склоняюсь к таким экспертам, как Крис Шифлетт и OWASP для советов по безопасности. http://shiflett.org/blog/2006/jul/the-owasp-php-top-5 Использовал собственный класс PDO DBO вместо файлов базы данных Codeigniter. Каждый раз, когда […]
Я изучаю веревки с PDO. Вот мой sql (число параметров, которое может появиться в WHERE, является переменной). SELECT ID, title FROM table WHERE something = ? ORDER BY :sort :dir LIMIT :start, :results Вот мой код: $query = $conn->prepare($sql); if ($parameters) { $i = 0; foreach ($parameters AS $parameter) { $i++; $query->bindParam($i, $parameter); } } […]