SQLite 、 PHP混合扩展编程: sqlite_create_function()
bool sqlite_create_function ( resource db_handle, string sqlite_function_name, mixed php_function_name [, int num_args])
你可能仅仅认为SQLite是一个非常小巧的嵌入式数据库, 但是实际上它的真实能力还远不止于此. SQLite是被编译到PHP语言里面的, 它们直接相连就如同一个程序一样. 这样就使得它们可以在一起以一种你意想不到的方式工作.
<?php
mysql_connect("localhost", "phpuser", "alm65z");
mysql_select_db("phpdb");
mysql_query("CREATE TABLE sqlite_test (ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, Name VARCHAR(255));");
mysql_query("INSERT INTO sqlite_test (Name) VALUES ('Peter Hutchinson');");
mysql_query("INSERT INTO sqlite_test (Name) VALUES ('Jeanette Shieldes');");
$conn = sqlite_open("employees");
sqlite_query($conn, "CREATE TABLE employees (ID INTEGER NOT NULL PRIMARY KEY, Name VARCHAR(255));");
sqlite_query($conn, "INSERT INTO employees (Name) VALUES ('James Fisher');");
sqlite_query($conn, "INSERT INTO employees (Name) VALUES ('Peter Hutchinson');");
sqlite_query($conn, "INSERT INTO employees (Name) VALUES ('Richard Hartis');");
function ExistsInBoth($name) {
if (mysql_num_rows(mysql_query("SELECT ID FROM sqlite_test WHERE Name = '$name';"))) {
return 1;
} else {
return 0;
}
}
sqlite_create_function($conn, "EXISTS_IN_BOTH", "ExistsInBoth");
$query = sqlite_query($conn, "SELECT Name FROM employees WHERE EXISTS_IN_BOTH(Name)");
while($row = sqlite_fetch_array($query, SQLITE_ASSOC)) {
extract($row);
print "$Name is in both databases\n";
}
?>
(阅读次数:)