Я использую 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'],
));
Я так пробовал. но не работает для меня.
Читайте об условиях относительности из документации 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'],
)
));
echo $database->last_query();
используйте эту функцию, чтобы проверить SQL-запрос, выполненный для отладки.
Пример:
$datas = $db->update( "meta" , ["metalabel"=>$label[0][0]], ["AND"=>["metakey"=>"Collection", "metavalue"=>$_POST["metavalue"]] ] );
вы должны установить массив с логическим оператором (AND или OR), и в качестве первого значения этого параметра вы должны установить другой массив... см. мой пример выше