преобразовать SQL-запрос в запрос Fluentpdo

у меня есть этот SQL-запрос, написанный на PHP:

$query = sprintf("UPDATE bank_info SET
amount_dollar = amount_dollar +'$amount_dollar'  ,
amount_euro = amount_euro + '$amount_euro' ,
amount_local = amount_local + '$amount_local'
WHERE bank_id = '$bank_id' ");

этот запрос работает нормально, но я хочу преобразовать этот запрос с помощью FluentPDO.
Я хочу использовать массивы для установки значений.
например:

$table='bank_info'; //table name
$arrVal=array();    //values needs to be SET
$arrVal['amount_dollar = amount_dollar+?']=$amount_dollar;
$arrVal['amount_euro = amount_euro+?']=$amount_euro;
$arrVal['amount_local = amount_local+?']=$amount_local;
$arrWhere=array();  //where condition
$arrWhere['bank_id']=$bank_id;

это запрос:

$query = $this->pdo->update($table)->set($arrVal)->where($arrWhere);

$query->execute();

Я думаю, что проблема в $ arrVal, не могу найти правильный способ SET и добавить значение к текущему значению для столбца в таблице.
Я использовал массив для выбора и получения значений из БД / таблиц много раз, поэтому я думаю, что $ arrWhere не является проблемой.

1

Решение

ну, нашел ответ,

Например:

Это работает для меня:

$id = 5;
$field = 'stock';
$amount = 1;

$increment = array($field => new FluentLiteral($field.' + '.$amount));

$fpdo->update('products')->set($increment)->where('id', $id)->execute();
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]