|
sqlite_create_function
Registers a "regular" User Defined Function for use in SQL statements
(PHP 5, PECL pdo_sqlite:0.2-0.3 sqlite:1.0-1.0.3)
Example 2324. sqlite_create_function() example<?php Example 2325. Example of using the PHP function<?php
This example will call the md5() on each
Code Examples / Notes » sqlite_create_phpinfo
The function can be a method of a class: <?php class sqlite_function { function md5($value) { return md5($value); } } $dbhandle = sqlite_open('SQLiteDB'); sqlite_create_function($dbhandle, 'md5', array('sqlite_function', 'md5'), 1); // From now on, you can use md5 function inside your SQL statements ?> It works fine :) brett
It appears that UDFs created by sqlite_create_function() do not work properly within INSERT or DELETE statements. A simplified INSERT example: <?php // SQLite UDF // Mimic MySQL FROM_UNIXTIME function function from_unixtime($unixtime) { return "'".date('Y-m-d H:i:s', $unixtime)."'"; } // ----------------------------------------------------------- // Open the database and create the UDF $handle = sqlite_open('db.sqlite', 0666); sqlite_create_function($handle, 'FROM_UNIXTIME', 'from_unixtime', 1); // Insert a row $sql = " INSERT INTO table (name, timestamp) VALUES ('Foo', FROM_UNIXTIME(".time()."); "; $result = sqlite_exec($handle, $sql); // Retrieve the row $sql = "SELECT * FROM table"; $result = sqlite_unbuffered_query($handle, $sql) $row = sqlite_fetch_all($result, SQLITE_ASSOC); // Dump print_r($row); ?> This will show: Array ( [0] => Array ( [name] => 'Foo' [timestamp] => -1 ) ) The expected result for timestamp would be something like '2005-05-20 10:00:00' |
Change Languagesqlite_array_query sqlite_busy_timeout sqlite_changes sqlite_close sqlite_column sqlite_create_aggregate sqlite_create_function sqlite_current sqlite_error_string sqlite_escape_string sqlite_exec sqlite_factory sqlite_fetch_all sqlite_fetch_array sqlite_fetch_column_types sqlite_fetch_object sqlite_fetch_single sqlite_fetch_string sqlite_field_name sqlite_has_more sqlite_has_prev sqlite_key sqlite_last_error sqlite_last_insert_rowid sqlite_libencoding sqlite_libversion sqlite_next sqlite_num_fields sqlite_num_rows sqlite_open sqlite_popen sqlite_prev sqlite_query sqlite_rewind sqlite_seek sqlite_single_query sqlite_udf_decode_binary sqlite_udf_encode_binary sqlite_unbuffered_query sqlite_valid |