1
0
mirror of https://github.com/dg/dibi.git synced 2025-08-06 22:26:43 +02:00

* modified DibiException (getDbError, ...)

* fix dibi::dumpResult()
This commit is contained in:
David Grudl
2007-02-02 03:51:43 +00:00
parent a2b1036a66
commit 0c86515076
16 changed files with 218 additions and 138 deletions

View File

@@ -4,55 +4,53 @@ require_once '../dibi/dibi.php';
try {
// connects using DSN
// connects to MySQL using DSN
dibi::connect('driver=mysql&host=localhost&username=root&password=xxx&database=test&charset=utf8');
// connects to MySQL / MySQLi
dibi::connect(array(
'driver' => 'mysql', // or 'mysqli'
'host' => 'localhost',
'username' => 'root',
'password' => 'xxx',
'database' => 'dibi',
'charset' => 'utf8',
));
// connects to ODBC
dibi::connect(array(
'driver' => 'odbc',
'username' => 'root',
'password' => '***',
'database' => 'Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\\Database.mdb',
));
// connects to SQlite
dibi::connect(array(
'driver' => 'sqlite',
'database' => 'mydb.sdb',
));
// connects to PostgreSql
dibi::connect(array(
'driver' => 'postgre',
'string' => 'host=localhost port=5432 dbname=mary',
'persistent' => TRUE,
));
} catch (DibiException $e) {
echo "DibiException: " . $e->getMessage();
die();
echo "DibiException: <pre>", $e;
}
// connects to mysql
dibi::connect(array(
'driver' => 'mysql',
'host' => 'localhost',
'username' => 'root',
'password' => 'xxx', // change to real password!
'database' => 'test',
'charset' => 'utf8',
));
/* connects to ODBC
dibi::connect(array(
'driver' => 'odbc',
'username' => 'root',
'password' => '***',
'database' => 'Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\\Database.mdb',
));
*/
/* connects to SQlite
dibi::connect(array(
'driver' => 'sqlite',
'database' => 'mydb.sdb',
));
*/
/* connects to PostgreSql
dibi::connect(array(
'driver' => 'postgre',
'string' => 'host=localhost port=5432 dbname=mary',
'persistent' => TRUE,
));
*/
// check status
if (!dibi::isConnected()) {
echo 'dibi::isConnected(): Not connected';
} else {
echo 'Connected';
}
?>

View File

@@ -4,7 +4,7 @@ require_once '../dibi/dibi.php';
// required since PHP 5.1.0
if (function_exists('date_default_timezone_set'))
date_default_timezone_set('Europe/Prague'); // or 'GMT'
date_default_timezone_set('Europe/Prague');
/**
@@ -55,12 +55,13 @@ class TDateTime implements IDibiVariable
// connects to mysqli
// CHANGE TO REAL PARAMETERS!
dibi::connect(array(
'driver' => 'mysql',
'host' => 'localhost',
'username' => 'root',
'password' => 'xxx', // change to real password!
'password' => 'xxx',
'database' => 'dibi',
'charset' => 'utf8',
));
@@ -68,7 +69,7 @@ dibi::connect(array(
// generate and dump SQL
dibi::test("
INSERT INTO [test]", array(
INSERT INTO [mytable]", array(
'A' => 12,
'B' => NULL,
'C' => new TDateTime(31542), // using out class
@@ -76,4 +77,3 @@ INSERT INTO [test]", array(
));
?>

38
examples/dump.php Normal file
View File

@@ -0,0 +1,38 @@
<?php
require_once '../dibi/dibi.php';
if (function_exists('date_default_timezone_set'))
date_default_timezone_set('Europe/Prague');
// CHANGE TO REAL PARAMETERS!
dibi::connect(array(
'driver' => 'mysql',
'host' => 'localhost',
'username' => 'root',
'password' => 'xxx',
'database' => 'dibi',
'charset' => 'utf8',
));
$res = dibi::query('SELECT * FROM [mytable]');
// get last SQL
$sql = dibi::$sql;
// dump it
echo '<h1>dibi::dump()</h1>';
dibi::dump($sql);
// dump result table
echo '<h1>dibi::dumpResult()</h1>';
dibi::dumpResult($res);

View File

@@ -4,18 +4,18 @@
require_once '../dibi/dibi.php';
// mysql
// CHANGE TO REAL PARAMETERS!
dibi::connect(array(
'driver' => 'mysql',
'host' => 'localhost',
'username' => 'root',
'password' => 'xxx', // change to real password!
'database' => 'test',
'password' => 'xxx',
'database' => 'dibi',
'charset' => 'utf8',
));
$res = dibi::query('SELECT * FROM table');
$res = dibi::query('SELECT * FROM [mytable]');
if (!$res) die('SQL error');
@@ -46,4 +46,3 @@ foreach ($res->getIterator(2, 3) as $row => $fields) {
?>

View File

@@ -1,4 +1,3 @@
<pre>
<?php
require_once '../dibi/dibi.php';
@@ -19,26 +18,56 @@ dibi::$logMode = 'a';
dibi::$logAll = TRUE;
// mysql
// CHANGE TO REAL PARAMETERS!
dibi::connect(array(
'driver' => 'mysql',
'host' => 'localhost',
'username' => 'root',
'password' => 'xxx', // change to real password!
'database' => 'xxx',
'password' => 'xxx',
'database' => 'dibi',
'charset' => 'utf8',
));
$res = dibi::query('SELECT * FROM [nucleus_item] WHERE [inumber] = %i', 38);
// generate user-level errors
dibi::$throwExceptions = FALSE;
echo '<h1>User-level errors</h1>';
$res = dibi::query('SELECT * FROM [nucleus_item] WHERE [inumber] < %i', 38);
$res = dibi::query('SELECT * FROM [mytable] WHERE [inumber] = %i', 38);
$res = dibi::query('SELECT * FROM [*nucleus_item] WHERE [inumber] < %i', 38);
$res = dibi::query('SELECT * FROM [mytable] WHERE [inumber] < %i', 38);
echo 'See file ', dibi::$logFile;
?>
$res = dibi::query('SELECT FROM [mytable] WHERE [inumber] < %i', 38);
echo "<br />See file ", dibi::$logFile;
// generate DibiException
dibi::$throwExceptions = TRUE;
echo '<h1>DibiException</h1>';
try {
$res = dibi::query('SELECT FROM [mytable] WHERE [inumber] < %i', 38);
} catch (DibiException $e) {
echo '<pre>', $e, '</pre>';
echo '<h2>$e->getSql()</h2>';
$sql = $e->getSql();
echo "SQL: $sql\n";
echo '<h2>$e->getDbError()</h2>';
$error = $e->getDbError();
echo '<pre>';
print_r($error);
echo '</pre>';
}

View File

@@ -4,18 +4,18 @@
require_once '../dibi/dibi.php';
// mysql
// CHANGE TO REAL PARAMETERS!
dibi::connect(array(
'driver' => 'mysqli',
'driver' => 'mysql',
'host' => 'localhost',
'username' => 'root',
'password' => 'xxx', // change to real password!
'database' => 'dgx',
'password' => 'xxx',
'database' => 'dibi',
'charset' => 'utf8',
));
$res = dibi::query('SELECT * FROM [nucleus_item] WHERE [inumber] <> %i', 38);
$res = dibi::query('SELECT * FROM [mytable] WHERE [inumber] <> %i', 38);
if (!$res) die('SQL error');
@@ -30,5 +30,3 @@ $res->setType(TRUE);
$record = $res->fetch();
var_dump($record);
?>

View File

@@ -11,12 +11,13 @@ if (function_exists('date_default_timezone_set'))
date_default_timezone_set('Europe/Prague'); // or 'GMT'
// mysql
// CHANGE TO REAL PARAMETERS!
dibi::connect(array(
'driver' => 'mysql',
'host' => 'localhost',
'username' => 'root',
'password' => 'xxx', // change to real password!
'password' => 'xxx',
'database' => 'dibi',
'charset' => 'utf8',
));
@@ -59,16 +60,16 @@ LIMIT 10");
// dibi detects INSERT or REPLACE command
dibi::test("INSERT INTO [test]", $arr4);
dibi::test("INSERT INTO [mytable]", $arr4);
// dibi detects UPDATE command
$n = 123;
dibi::test("UPDATE [test] SET", $arr4, " WHERE [id]=%i", $n);
dibi::test("UPDATE [mytable] SET", $arr4, " WHERE [id]=%i", $n);
// array with modifier %a - assoc
dibi::test("UPDATE [test] SET%a", $arr4, " WHERE [id]=%i", $n);
dibi::test("UPDATE [mytable] SET%a", $arr4, " WHERE [id]=%i", $n);

View File

@@ -7,12 +7,13 @@ pre.dibi { padding-bottom: 10px; }
require_once '../dibi/dibi.php';
// mysql
// CHANGE TO REAL PARAMETERS!
dibi::connect(array(
'driver' => 'mysql',
'host' => 'localhost',
'username' => 'root',
'password' => 'xxx', // change to real password!
'password' => 'xxx',
'database' => 'dibi',
'charset' => 'utf8',
));
@@ -26,7 +27,7 @@ $user = $cond1 ? 'Davidek' : NULL;
dibi::test('
SELECT *
FROM [table]
FROM [mytable]
%if', isset($user), 'WHERE [user]=%s', $user, '%end'
);
@@ -41,11 +42,11 @@ FROM %if', $cond1, '[one_table] %else [second_table]'
// nested condition
dibi::test('
SELECT *
FROM [test]
FROM [mytable]
WHERE
%if', isset($user), '[user]=%s', $user, '
%if', $cond2, 'AND [admin]=1 %end
%else LIMIT 10 %end'
);
?>

View File

@@ -3,12 +3,13 @@
require_once '../dibi/dibi.php';
// connects to mysqli
// CHANGE TO REAL PARAMETERS!
dibi::connect(array(
'driver' => 'mysql',
'host' => 'localhost',
'username' => 'root',
'password' => 'xxx', // change to real password!
'password' => 'xxx',
'database' => 'dibi',
'charset' => 'utf8',
));
@@ -29,4 +30,3 @@ dibi::addSubst('', 'my_');
dibi::test("UPDATE [database.::table] SET [text]='Hello World'");
?>