(PHP 4 >= 4.3.0, PHP 5)
pg_select — Wählt Datensätze aus
pg_select() wählt die Datensätze aus der Tabelle table_name aus, die den Elementen (field=>value) in assoc_array entsprechen. Wenn die Abfrage erfolgreich war, wird ein assoziatives Array mit allen Zeilen und Werten aus table_name zurückgegeben, die mit den Zeilen und Werten in assoc_array identisch sind.
Falls options angegeben wurde, wird pg_convert() mit den angegebenen Flags auf assoc_array angewendet.
Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.
PostgreSQL Verbindungskennung.
Name der Tabelle, aus der die Zeilen ausgewählt werden.
Ein array, dessen Schlüssel Feldnamen von table_name sind und dessen Werte mit den entsprechenden Werten in table_name übereinstimmen müssen, damit die Zeile zurückgegeben werden kann.
Eine beliebige Kombination aus PGSQL_CONV_FORCE_NULL, PGSQL_DML_NO_CONV, PGSQL_DML_EXEC, PGSQL_DML_ASYNC oder PGSQL_DML_STRING. Falls PGSQL_DML_STRING in den options enthalten ist, wird der Abfragestring zurückgegeben.
Gibt bei Erfolg TRUE zurück. Im Fehlerfall wird FALSE zurückgegeben. Gibt einen string zurück, falls PGSQL_DML_STRING im Parameter options übergeben wurde.
Beispiel #1 pg_select() Beispiel
<?php
$db = pg_connect('dbname=foo');
// Das ist sicher, da $_POST automatisch konvertiert wird
$rec = pg_select($db, 'post_log', $_POST);
if ($rec) {
echo "Datensätze ausgewählt\n";
var_dump($rec);
} else {
echo "Falsche Eingabe\n";
}
?>
David mentioned that you can't do a Select all.
However, when executing this script:
<?php
$conn_string = "dbname=mydb";
$db = pg_connect($conn_string);
$selectfields = array("imgid" => "");
$records = pg_select($db,"mmsfiles",$selectfields);
print_r($records);
?>
...I get this result:
Array
(
[0] => Array
(
[imgid] => 1
[file] => /home/wietse/public_html/mms/images/1.gif
[thumb] =>
)
[1] => Array
(
[imgid] => 2
[file] => /home/wietse/public_html/mms/images/2.gif
[thumb] =>
)
[2] => Array
(
[imgid] => 3
[file] => /home/wietse/public_html/mms/images/3.gif
[thumb] =>
)
[3] => Array
(
[imgid] => 4
[file] => /home/wietse/public_html/mms/images/4.gif
[thumb] =>
)
)
Valid options are PGSQL_DML_NO_CONV, PGSQL_DML_EXEC, PGSQL_DMP_ASYNC, PGSQL_DML_STRING (pulled out of source code).
This function does not support selecting from multiple tables. You can get around this by setting the PGSQL_DML_NO_CONV option. This prevents the error which occurs when the function tries to convert the condition array.
I think it is also important to point out that the table_name field is not safe, particularily with the PGSQL_DML_NO_CONV option.
The arguements array field is compulsory, as documented. What isn't so clear is that the array has to actually have some values in it, you can't do a select all.
In summary, this function is good for a very small subset of basic queries. If you are after anything more complex you are better off with pg_query.