PHP.mk документација

pg_update

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

function.pg-update.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека function.pg-update.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
pg_update

Референца за `function.pg-update.php` со подобрена типографија и навигација.

function.pg-update.php

pg_update

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

pg_update Ажурирај табела

= NULL

pg_update(
         PgSql\Connection $connection,
         string $table_name,
         array $values,
         array $conditions,
         int $flags = PGSQL_DML_EXEC
): string|bool

pg_update() ажурира записи што одговараат conditions with values.

Враќа flags се специфицира, pg_convert() се применува на values со специфицираните знаменца.

Стандардно pg_update() пропушта сурови вредности. Вредностите мора да бидат избегнати или PGSQL_DML_ESCAPE знаменцето мора да биде специфицирано во flags. PGSQL_DML_ESCAPE цитати и избегнува параметри/идентификатори. Затоа, имињата на табелите/колоните стануваат чувствителни на големи и мали букви.

Имајте предвид дека ниту избегнувањето ниту подготвеното барање не можат да заштитат LIKE барање, JSON, Низа, Regex, итн. Овие параметри треба да се третираат според нивните контексти. т.е. Избегнувајте/потврдете вредности.

Параметри

connection

Еден PgSql\Connection instance.

table_name

Име на табелата во која да се ажурираат редовите.

values

Еден array чии клучеви се имиња на полиња во табелата table_name, и чии вредности се она што треба да се ажурираат соодветните редови.

conditions

Еден array чии клучеви се имиња на полиња во табелата table_name, и чии вредности се условите што мора да ги исполни еден ред за да биде ажуриран.

flags

Податоци за конвертирање. PGSQL_CONV_FORCE_NULL, PGSQL_DML_NO_CONV, PGSQL_DML_ESCAPE, PGSQL_DML_EXEC, PGSQL_DML_ASYNC or PGSQL_DML_STRING комбинирано. Ако PGSQL_DML_STRING е дел од flags тогаш се враќа стринг од барањето. Кога PGSQL_DML_NO_CONV or PGSQL_DML_ESCAPE е поставено, не го повикува pg_convert() internally.

Вратени вредности

Патеката до PHP скриптата што треба да се провери. true на успех или false при неуспех. Враќа string if PGSQL_DML_STRING се пропушта преку flags.

Дневник на промени

Верзија = NULL
8.1.0 На connection параметарот очекува PgSql\Connection инстанца сега; претходно, а resource се очекуваше.

Примери

Пример #1 pg_update() example

<?php
$db
= pg_connect('dbname=foo');
$data = array('field1'=>'AA', 'field2'=>'BB');
// This is safe somewhat, since all values are escaped.
// However PostgreSQL supports JSON/Array. These are not
// safe by neither escape nor prepared query.
$res = pg_update($db, 'post_log', $_POST, $data);
if (
$res) {
echo
"Data is updated: $res\n";
} else {
echo
"User must have sent wrong inputs\n";
}
?>

Види Исто така

  • pg_convert() - Конвертирање на вредностите на асоцијативниот список во форми погодни за SQL изјави

Белешки од корисници 3 белешки

- Претворете ги вредностите на асоцијативниот низ во форми погодни за SQL изјави
пред 18 години
Using pg_update() and pg_insert() without key validation is not secure! 

You need to check which data pairs you get, and if you want to allow to updated this column. 

Example: 

You have a table with tree colums: username, password, userlevel. 

Your users may change only their username, and their password but not their userlevel.

If you don't filter the keys in the request array, every user can now change his userlevel just by sending a POST Request with "userlevel=>100".

So if you don't check if the key are allowed in your request array you'll get serious sql injection vulnarabilities in your code.
jhooks
19 години пред
> Return Values
> 
> Returns TRUE on success or FALSE on failure. Returns string if 
> PGSQL_DML_STRING is passed via options. 

I have found in my copy of PHP (version 4.4.0) that if you use the 'PGSQL_DML_STRING' option, the function does not execute any query.  It merely returns the query which would have been executed.  

Another thing I noticed, pg_update does not seem to make use of pg_trace (atleast in 4.4.0).

PS this isn't a bug report, just an explanation of some undocumented features I noticed.  As the manual says, the function is still in development so this behaviour may differ from version to version.
sdibb на myway точка com
20 години пред
This function is similar to PEAR::DB's autoExecute() function, with the only difference being that the where clause is an array instead of a string.

Also, if you want to use your instance of the DB class with this function, you can reference the existing resource connection with $db->connection.

An example would be:
<?
     pg_update($db->connection, $arr_update, $arr_where);
?>
Навигација

Прелистувај сродни теми и функции.

На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.