pdo.php   [plain text]


<?php
dl('pdo.so');
dl('pdo_sqlite.so');

//$x = new PDO("oci:dbname=hostname", 'php', 'php');
$x = new PDO("sqlite::memory:");

$x->query("create table test(name string, value string)");
debug_zval_dump($x);

$stmt = $x->prepare("INSERT INTO test (NAME, VALUE) VALUES (:name, :value)");

$stmt->bindParam(":name", $the_name, PDO_PARAM_STR, 32);
$stmt->bindParam(":value", $the_value, PDO_PARAM_STR, 32);

for ($i = 0; $i < 4; $i++) {
	$the_name = "foo" . rand();
	$the_value = "bar" . rand();

	if (!$stmt->execute()) {
		break;
	}
}

$stmt = null;

echo "DEFAULT:\n";
foreach ($x->query("select NAME, VALUE from test") as $row) {
	print_r($row);
}

echo "OBJ:\n";

class Foo {
	public $NAME = "Don't change me";
}

$foo = new foo;

foreach ($x->query("select NAME, VALUE from test", PDO_FETCH_COLUMN, 1) as $row) {
	debug_zval_dump($row);
}

echo "Done\n";
exit;

$stmt = $x->prepare("select NAME, VALUE from test where value like ?");
$the_name = 'bar%';
$stmt->execute(array($the_name)) or die("failed to execute!");
$stmt->bindColumn('VALUE', $value);

while ($row = $stmt->fetch()) {
	echo "name=$row[NAME] value=$row[VALUE]\n";
	echo "value is $value\n";
	echo "\n";
}

echo "Let's try an update\n";

echo "All done\n";

?>