blob: d6fd84d75814455a49dfd3f6add62805021f7692 [file] [log] [blame]
#!/usr/bin/php5
<?php
# $Id: sample.php 3633 2010-06-06 23:56:41Z unsaved $
# Sample PHP script accessing HyperSQL through the ODBC extension module.
# (Therefore, you need to have the PHP ODBC module installed).
# This test HyperSQL client uses the ODBC DSN "tstdsn" to connect up to a
# HyperSQL server. Just configure your own DSN to use the HyperSQL ODBC
# driver, specifying the HyperSQL server host name, database name, user,
# password, etc.
# Author: Blaine Simpson (blaine dot simpson at admc dot com)
# Empty strings for the username or password parameter here will defer
# to the ODBC manager for those values. I.e. the blanks here do not mean to
# send blanks to the database server.
$conn_id = odbc_connect('tstdsn', '', '');
if (!$conn_id) exit('Connection Failed: ' . $conn_id . "\n");
if (!odbc_autocommit($conn_id, FALSE))
exit("Failed to turn off AutoCommit mode\n");
if (!odbc_exec($conn_id, "DROP TABLE tsttbl IF EXISTS"))
exit("DROP command failed\n");
if (!odbc_exec($conn_id,
"CREATE TABLE tsttbl(
id BIGINT generated BY DEFAULT AS IDENTITY,
vc VARCHAR(20),
entrytime TIMESTAMP DEFAULT current_timestamp NOT NULL
)"))
exit("CREATE TABLE command failed\n");
# First do a non-parameterized insert
if (!odbc_exec($conn_id, "INSERT INTO tsttbl(id, vc) VALUES(1, 'one')"))
exit("Insertion of first row failed\n");
# Now parameterized inserts
$stmt = odbc_prepare($conn_id, "INSERT INTO tsttbl(id, vc) VALUES(?, ?)");
if (!$stmt) exit("Preparation of INSERT statement failed \n");
# With (default) debug mode, the following statements will generate
# annoying "cursor updatability" warnings.
$rv = odbc_execute($stmt, array(2, 'two'));
if ($rv != 1) exit("2nd Insertion failed with value $rv\n");
$rv = odbc_execute($stmt, array(3, 'three'));
if ($rv != 1) exit("3rd Insertion failed with value $rv\n");
$rv = odbc_execute($stmt, array(4, 'four'));
if ($rv != 1) exit("4th Insertion failed with value $rv\n");
$rv = odbc_execute($stmt, array(5, 'five'));
if ($rv != 1) exit("5th Insertion failed with value $rv\n");
odbc_commit($conn_id);
# A non-parameterized query
$rs = odbc_exec($conn_id, "SELECT * FROM tsttbl WHERE id < 3");
if (!$rs) exit("Error in SQL\n");
$rownum = 0;
while (odbc_fetch_row($rs)) {
$rownum++;
echo "$rownum: " . odbc_result($rs, "id")
. '|' . odbc_result($rs, "vc")
. '|' . odbc_result($rs, "entrytime") . "\n";
}
# You need to use the PDO_ODBC extension to parameterize queries (selects).
# If you want an example of this, just ask.
odbc_close($conn_id);
?>