94 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			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 {
 | 
						|
  }
 | 
						|
});
 |