"?string", "table" => "?string", "schema" => "?array", "cols" => "?array", "values" => "?array", "where" => "?array", "suffix" => "?string", ]; static function isa(string $sql): bool { return preg_match("/^update\b/i", $sql); } static function parse(array $query, ?array &$bindings=null): string { #XXX implémentation minimale $sql = [self::merge_seq($query)]; ## préfixe $prefix = $query["prefix"] ?? null; if ($prefix !== null) $sql[] = $prefix; ## table $table = $query["table"] ?? null; if ($table !== null) $sql[] = $table; ## set self::parse_set_values($query["values"], $setsql, $bindings); $sql[] = "set"; $sql[] = implode(", ", $setsql); ## where $where = $query["where"] ?? null; if ($where !== null) { self::parse_conds($where, $wheresql, $bindings); if ($wheresql) { $sql[] = "where"; $sql[] = implode(" and ", $wheresql); } } ## suffixe $suffix = $query["suffix"] ?? null; if ($suffix !== null) $sql[] = $suffix; ## fin de la requête return implode(" ", $sql); } }