pg_update
Aktualizuje tabelę
&reftitle.description;
stringboolpg_update
PgSql\Connectionconnection
stringtable_name
arrayvalues
arrayconditions
intflags
PGSQL_DML_EXEC
pg_update aktualizuje wiersze spełniające warunki zawarte w parametrze
conditions używając danych z parametru values.
Jeśli jest użyty parametr flags, funkcja
pg_convert jest stosowana na wartościach z parametru
values z podanymi flagami.
Domyślnie pg_update przekazuje nieprzetworzone wartości.
Wartości muszą być ucieknięte lub flaga PGSQL_DML_ESCAPE
musi być określona w parametrze flags.
PGSQL_DML_ESCAPE ucieka i umieszcza w cudzysłowach nazwy parametrów
i identyfikatorów. Dlatego w nazwach tabel/kolumn rozróżniana jest wielkość liter.
Należy pamiętać, że ani escape, ani przygotowane zapytanie nie mogą chronić zapytania
LIKE, JSON, Array, Regex itp. Z tymi parametrami należy postępować zgodnie z ich kontekstem.
Tj. Ucieczka/walidacja wartości.
&reftitle.parameters;
identyfikator_połączenia
&pgsql.parameter.connection;
table_name
Nazwa tabeli, w której będą aktualizowane wiersze.
values
Tablica (ang. array), której klucze są nazwami kolumn w tabeli table_name,
oraz której wartości są nową zawartością pasujących do warunków wierszy.
conditions
Tablica (ang. array), której klucze są nazwami kolumn w tabeli table_name,
oraz której wartości są warunkami, jakie muszą spełnić uaktualniane wiersze.
flags
Dowolna kombinacja dowolnej ilości parametrów: PGSQL_CONV_OPTS,
PGSQL_DML_NO_CONV,
PGSQL_DML_ESCAPE,
PGSQL_DML_EXEC,
PGSQL_DML_ASYNC lub
PGSQL_DML_STRING. Jeśli PGSQL_DML_STRING został podany w parametrze
flags, zostanie zwrócony łańcuch zapytania. Kiedy ustawione jest
PGSQL_DML_NO_CONV lub PGSQL_DML_ESCAPE, funkcja nie wykonuje pg_convert
wewnętrznie.
&reftitle.returnvalues;
&return.success; Zwraca łańcuch (ang. string) gdy PGSQL_DML_STRING został podany
poprzez flags.
&reftitle.changelog;
&Version;
&Description;
&pgsql.changelog.connection-object;
&reftitle.examples;
pg_update - przykład
'AA', 'kolumna2'=>'BB');
// Jest to w pewnym stopniu bezpieczne, ponieważ wszystkie wartości są ucięknięte.
// PostgreSQL obsługuje jednak JSON/Array. Nie są one
// bezpieczne ani przez ucieczkę, ani przez przygotowane zapytanie.
$res = pg_update($polaczenie, 'kopia_post', $_POST, $dane);
if ($res) {
echo "Dane zostały zaktualizowane: $res\n";
} else {
echo "Użytkownik wprowadził błędne dane\n";
}
?>
]]>
&reftitle.seealso;
pg_convert