nur-sery/nur_tbin/test-conn.php

94 lines
2.9 KiB
PHP

<?php # -*- coding: utf-8 mode: php -*- vim:sw=2:sts=2:et:ai:si:sta:fenc=utf-8
# fichier utilisé pour les tests. on peut y écrire du code pour vérifier le
# fonctionnement de certaines classes et méthodes
require(__DIR__.'/../vendor/autoload.php');
use nur\cli\Application;
use nur\m\oracle\OracleConn;
use nur\m\pdo\mysql\MysqlConn;
Application::run(new class extends Application {
const ARGS = [
"merge" => Application::ARGS,
["--debug", "action" => "->setApplicationDebug",
"help" => "Activer le mode DEBUG: comme VERBOSE mais les traceback sont affichés à partir des messages normaux",
],
["-0", "--init"],
["-t", "--throw"],
];
private $init, $throw;
private $args;
function main() {
$this->testOracle();
#$this->testMysql();
#$this->testPgsql();
}
function testOracle(): void {
$conn = new OracleConn("//vs-apotest-bdd.univ.run:1521/apotest", "webread", "run974");
$q = $conn->query("select * from individu where cod_etu = :cod_etu", ["cod_etu" => "99002956"]);
foreach ($q->execute() as $row) {
Txx($row);
}
}
function testMysql(): void {
#$conn = new MysqlConn("mysql:host=localhost;dbname=test;charset=utf8", "jclain");
$conn = new MysqlConn("mysql:host=192.168.1.20;dbname=test;charset=utf8", "jclain", 'klokis$');
if ($this->init) {
$conn->execDml("drop table if exists t");
$conn->execDml("create table t(id integer not null primary key auto_increment, a varchar(30), b integer, d date, t timestamp default current_timestamp)");
Txx($conn->execDml("insert into t(a, b) values ('first', 1)"));
Txx($conn->execDml("insert into t(a, b, d) values ('second', 2, '2020-10-20')"));
Txx($conn->execDml("insert into t(a, b, d) values ('second', 2, '2020-05-15')"));
if ($this->throw) {
Txx($conn->execDml("insert into t(id, a, b) values (2, 'conflict', 3)"));
}
$conn->commit();
}
$do = 2;
if ($do == 0) {
$row = $conn->fetchRow("select a, b from t where b = 1");
Txx("b==1", $row);
$row = $conn->fetchRow("select a, b from t where b = 100");
Txx("b==100", $row);
$rows = $conn->fetchRows("select a, b from t");
Txx("all", $rows);
$rows = $conn->fetchRows("select a, b from t where b > 100");
Txx("all b>100", $rows);
}
if ($do == 1) {
$rows = $conn->fetchRows("select * from t");
foreach ($rows as $row) {
Txx("row", $row);
}
}
if ($do == 2) {
$rows = $conn->query("select * from t")->execute();
foreach ($rows as $row) {
Txx("row", $row);
}
}
if ($do == 4) {
$q = $conn->query("select * from t where d > :date");
Txx("after 01/01", $q->execute(false, ["date" => "01/01/2020"])->all());
Txx("after 15/06", $q->execute(false, ["date" => "15/06/2020"])->all());
}
}
function testPgsql(): void {
}
});