Я использую Medoo. Приведенное ниже обновление отлично работает при совпадении с одним полем. Я хочу обновить данные, если они совпадают с clientId и businessCity.
$database->update("clientInfo", array(
"businessName" => $_POST['businessName'],
"contactName" => $_POST['contactName'],
"businessEmail" => $_POST['businessEmail'],
"businessPhone" => $_POST['businessPhone'],
"businessWebsite" => $_POST['businessWebsite'],
"businessAddress" => $_POST['businessAddress'],
"businessAddress2" => $_POST['businessAddress2'],
"businessCity" => $_POST['businessCity'],
"businessState" => $_POST['businessState'],
"businessZip" => $_POST['businessZip']
), array(
"clientId" => $_POST['clientId'],
"businessCity" => $_POST['businessCity'],
));
Я пытался так. но не работает для меня.
echo $database->last_query();
используйте эту функцию, чтобы проверить SQL-запрос, выполненный для отладки.
Читайте о Условии Относительности из документации Medoo: http://medoo.in/api/where
Просто добавь AND
разъем для каждого значения.
$database->update("clientInfo", array(
"businessName" => $_POST['businessName'],
"contactName" => $_POST['contactName'],
"businessEmail" => $_POST['businessEmail'],
"businessPhone" => $_POST['businessPhone'],
"businessWebsite" => $_POST['businessWebsite'],
"businessAddress" => $_POST['businessAddress'],
"businessAddress2" => $_POST['businessAddress2'],
"businessCity" => $_POST['businessCity'],
"businessState" => $_POST['businessState'],
"businessZip" => $_POST['businessZip']
), array(
'AND' => array(
"clientId" => $_POST['clientId'],
"businessCity" => $_POST['businessCity'],
)
));
Пример:
$datas = $db->update( "meta" , ["metalabel"=>$label[0][0]], ["AND"=>["metakey"=>"Collection", "metavalue"=>$_POST["metavalue"]] ] );
Вы должны установить массив с логическим оператором (И или ИЛИ) и в качестве первого значения этого вы должны установить другой массив … см. мой пример выше