Обновить столбец только для таблицы, в котором есть вход

Привет, вот моя проблема. Я работаю над приложением, которое обновляет данные до db. Моя проблема в том, что когда я отправляю новые данные на db, если вход пуст, он перезаписывает существующие данные в таблице с 0. Только если у меня есть какое-то значение, в моих случаях номера на входах он корректно обновляет.

Как проверить пустые входы, я их не отправляю?

<?php error_reporting(E_ALL); ini_set('display_errors', 1); $mysql_host = "localhost"; $mysql_username = "root"; $mysql_password = ""; $mysql_database = "medvedgrad"; // First we create the connection $pdo = new PDO("mysql:host=".$mysql_host .";dbname=".$mysql_database .";charset=utf8", $mysql_username, $mysql_password); $pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $data = json_decode(file_get_contents("php://input")); $zm = $data->zlatni_medvjed; $ck = $data->crna_kraljica; $gv = $data->gricka_vjestica; $dk = $data->dva_klasa; $fk = $data->fakin; // Then we prepare, and execute the query $stmt = $pdo->prepare("UPDATE `stanje_piva` SET `zlatni_medvjed`=`zlatni_medvjed`+:zm, `crna_kraljica`=`crna_kraljica`+:ck, `gricka_vjestica`=`gricka_vjestica`+:gv, `dva_klasa`=`dva_klasa`+:dk,`fakin`=`fakin`+:fk WHERE `id`=1"); $stmt->execute(array("zm" => $zm, "ck" => $ck, "gv" => $gv, "dk" => $dk, "fk" => $fk)); ?> 

Вам нужен способ включить в массив только непустые значения и обновить только те.

 $updateArray = array(); $sqlString = "Update `stanje_piva` SET "; foreach(['zm' => $zm, 'ck' => $ck, 'gv' => $gv, 'dk' => $dk, 'fk' => $fk] as $key => $value){ // add to updateArray ONLY IF NOT EMPTY if($value != ''){ // add key/value to updateArray array_push($updateArray, $key => $value); // append key/value to sql string switch($key){ case 'zm': $sqlString .= "`zlatni_medvjed`=`zlatni_medvjed`+:zm, "; break; case 'ck': $sqlString .= "`crna_kraljica`=`crna_kraljica`+:ck, "; break; case 'gv': $sqlString .= "`gricka_vjestica`=`gricka_vjestica`+:gv, "; break; case 'dk': $sqlString .= "`dva_klasa`=`dva_klasa`+:dk, "; break; case 'fk': $sqlString .= "`fakin`=`fakin`+:fk, "; break; } } } // remove last ', ' from sqlQuery $sqlQuery = substr($sqlQuery, 0, strlen($sqlQuery)-2); // add Where clause $sqlQuery .= " WHERE `id`=1"; // prepare $stmt = $pdo->prepare($sqlQuery); // execute $stmt->execute($updateArray); 

edit: забыл подготовить stmt, добавил, что.

 if(!empty($zm) && !empty($ck) && !empty($gv) && !empty($dk) && !empty($fk)) { $stmt->execute(array("zm" => $zm, "ck" => $ck, "gv" => $gv, "dk" => $dk, "fk" => $fk)); }