хочу с помощью строковых операторов создать sql запрос update есть рабочий пример на insert Данные поступают из $_POST пример $array = $_POST["pet"] = "cat"; где ключи равны именам столбца таблицы, а значение будет попадать в бд, как значение
$sql = "UPDATE ". $nameTable ." SET";
// implode keys of $array...
$sql .= " (`".implode("`, `", array_keys($array))."`)";
// implode values of $array...
$sql .= " VALUES ('".implode("', '", $array)."') ";
$stmt = DB::prepare($sql);
$stmt->execute();
рабочий пример с insert into
class SqlQuery
{
public function InsertText($array, $nameTable)
{
// build query...
$sql = "INSERT INTO ". $nameTable;
// implode keys of $array...
$sql .= " (`".implode("`, `", array_keys($array))."`)";
// implode values of $array...
$sql .= " VALUES ('".implode("', '", $array)."') ";
$stmt = DB::prepare($sql);
$stmt->execute();
$e = DB::lastInsertId();
return $e;
}
public function UpdateText($array, $nameTable)
{
// build query...
$sql = "UPDATE ". $nameTable ." SET";
// implode keys of $array...
$sql .= " (`".implode("`, `", array_keys($array))."`)";
// implode values of $array...
$sql .= " VALUES ('".implode("', '", $array)."') ";
$stmt = DB::prepare($sql);
$stmt->execute();
$e = DB::lastInsertId();
return $e;
}
}
Сделал чуть позже полностью класс выложу
$array = $_POST;
$arrVal = $array;
$arrKey = array_keys($array);
$all = [];
foreach ($arrKey as $key => $val) {
$all[] = "`".$arrKey[$key]."` = '".$arrVal[$val]."'";
}
$allStrong = implode(",", $all);
Сборка персонального компьютера от Artline: умный выбор для современных пользователей