Обновите старый оператор Mysql с помощью PDO - PullRequest
0 голосов
/ 12 февраля 2019

Как я могу обновить этот старый оператор в оператор PDO?

Старый:

$query = "UPDATE  tbl_product
          SET
         image = CASE WHEN '$post_image' IS NULL OR CHAR_LENGTH('$post_image') = 0 THEN image ELSE '$post_image' END

и новый PDO

$query = "UPDATE tbl_product 
                SET 
                image=:image 

Спасибо!

1 Ответ

0 голосов
/ 12 февраля 2019

PDO имеет преимущество именованных заполнителей .В отличие от MySQLi, который имеет только ? в качестве заполнителя (в PDO это тоже есть), вы можете использовать :image в качестве заполнителя и повторять его при необходимости - затем PDO заменит заполнители значением, связанным с этим заполнителем.либо в execute(), либо используя bindParam() / bindValue().

Просто замените все экземпляры с '$post_image' на :image.Обратите внимание, что вокруг заполнителя нет кавычек.

$query = "UPDATE  tbl_product
          SET image = CASE WHEN :image IS NULL OR CHAR_LENGTH(:image) = 0 THEN image 
                           ELSE :image END";

Затем вы подготовите и выполните запрос, назначив значение $post_image для заполнителя :image.Обратите внимание, что это внутри массива [..].

$stmt = $pdo->prepare($query);
$stmt->execute(["image" => $post_image]);

Документация:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...