PHP Doku:: Registriert eine PHP-Funktion, die als SQL-Skalar-Funktion genutzt werden kann - sqlite3.createfunction.html

Verlauf / Chronik / History: (2) anzeigen

Sie sind hier:
Doku-StartseitePHP-HandbuchFunktionsreferenzDatenbankerweiterungenAnbieterspezifische DatenbankerweiterungenSQLite3Die SQLite3-KlasseSQLite3::createFunction

Ein Service von Reinhard Neidl - Webprogrammierung.

Die SQLite3-Klasse

<<SQLite3::createAggregate

SQLite3::escapeString>>

SQLite3::createFunction

(PHP 5 >= 5.3.0)

SQLite3::createFunctionRegistriert eine PHP-Funktion, die als SQL-Skalar-Funktion genutzt werden kann

Beschreibung

public bool SQLite3::createFunction ( string $name , mixed $callback [, int $argument_count = -1 ] )

Registriert eine PHP- oder benutzerdefinierte Funktion, die als SQL-Skalar-Funktion innerhalb einer SQL-Anweisung genutzt werden kann.

Parameter-Liste

name

Name der SQL-Funktion, die erstellt oder neu definiert werden soll.

callback

Der Name der PHP- oder benutzerdefinierten Funktion, welche als Callback-Funktion agieren soll und das Verhalten der SQL-Funktion definiert.

argument_count

Die Anzahl an Argumenten, die die SQL-Funktion entgegen nimmt. Ist der Parameter negativ, ist die SQL-Funktion nicht auf eine Parameteranzahl eingeschränkt.

Rückgabewerte

Gibt TRUE zurück, wenn die Funktion erfolgreich erstellt wurde. Anderenfalls wird FALSE zurückgegeben.

Beispiele

Beispiel #1 SQLite3::createFunction()-Beispiel

<?php
function my_udf_md5($string) {
    return 
md5($string);
}

$db = new SQLite3('mysqlitedb.db');
$db->createFunction('my_udf_md5''my_udf_md5');

var_dump($db->querySingle('SELECT my_udf_md5("test")'));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(32) "098f6bcd4621d373cade4e832627b4f6"


Ein BenutzerBeitrag:
- Beiträge aktualisieren...
koalay at gmail dot com
26.05.2010 16:43
Since regular expression is not supported by default SQLite, we can create a user function to do the job.

<?php

$db
= new SQLite3("database.sqlit3", 0666);

// create a function named "preg_match"
// with the php core function "preg_match"
if ($db->createFunction("preg_match", "preg_match", 2) === FALSE)
  exit(
"Failed creating function\n");

// this query will then works as expected
$result = $db->query("SELECT * FROM table1 WHERE
  preg_match('/^(apple|orange)$/', variable1)"
);

?>



PHP Powered Diese Seite bei php.net
The PHP manual text and comments are covered by the Creative Commons Attribution 3.0 License © the PHP Documentation Group - Impressum - mail("TO:Reinhard Neidl",...)