Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <pre>
- <h1>Test for PDO::FIREBIRD/NIOKR</h1>
- <?
- $data=array();
- TestLoadIbase();
- require_once("lib_interbase.php");
- mlog("create new PDO::FIREBIRD()\n");
- mlog("try connect to server_cru:niokr2 db\n");
- $db = new PDO("firebird:dbname=server_cru:f:\\sqlbase\\niokr\\niokr2.gdb",
- "sysdba", "masterkey",
- array(PDO::ATTR_AUTOCOMMIT=>false));
- $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
- $db->setAttribute(PDO::FB_ATTR_TIMESTAMP_FORMAT,"%d.%m.%Y %H:%M:%S");
- $db->setAttribute(PDO::FB_ATTR_DATE_FORMAT,"%d.%m.%Y");
- $db->setAttribute(PDO::FB_ATTR_TIME_FORMAT,"%H:%M:%S");
- $db->beginTransaction();
- try{
- MakeData();
- TestQueryDelete();
- mlog("Test on simple SQL, without params\n");
- TestInsert("");
- TestQueryDelete();
- mlog("Test on SQL with 2 params\n");
- TestInsert(1);
- TestQueryDelete();
- mlog("Test on full SQL with 11 params\n");
- TestInsert("full");
- }
- catch(Exception $e)
- {
- mlog_err("Exception: ".$e->getMessage());
- $d=debug_backtrace();
- foreach($d as $t)
- {
- $f="";
- if (key_exists("function",$t))
- $f="(".$t['function'].")";
- mlog("Stack: {$t['file']}/{$t['line']} $f\n");
- }
- }
- $db->commit();
- mlog("Closing db\n");
- $db=null;
- mlog("all done\n");
- die();
- function TestQueryDelete()
- {
- global $db;
- mlog("delete from tb_niokr \n");
- $db->Query("delete from tb_niokr");
- }
- function TestInsert($what)
- {
- global $db,$data;
- $type=1;
- mlog("Start insert\n");
- if ($what=="full")
- {
- /* full sql row */
- $sql="insert into tb_niokr
- ( NIOKR_TYPE, INV_NO, NAME, CREATOR, N_DOG, AUTHOR, AYEAR,
- CITY, ANNOTATION, ACOUNT, GRIF, ACOMMENT) values
- (:NIOKR_TYPE,:INV_NO,:NAME,:CREATOR,:N_DOG,:AUTHOR,:AYEAR,
- :CITY,:ANNOTATION,:ACOUNT,:GRIF,:ACOMMENT)";
- }
- else if ($what==1)
- {
- $sql="insert into tb_niokr
- ( NIOKR_TYPE, INV_NO, NAME, CREATOR, N_DOG, AUTHOR, AYEAR,
- CITY, ANNOTATION, ACOUNT, GRIF, ACOMMENT) values
- (:NIOKR_TYPE,:INV_NO,'','','','','','','','','','')";
- }
- else
- {
- $sql="insert into tb_niokr
- ( NIOKR_TYPE, INV_NO, NAME, CREATOR, N_DOG, AUTHOR, AYEAR,
- CITY, ANNOTATION, ACOUNT, GRIF, ACOMMENT) values
- (1,'','','','','','','','','','','')";
- }
- $q=$db->prepare($sql);
- $row=0;
- foreach ($data as $item)
- {
- mlog("Call execute, row=$row\n");
- $row++;
- $len=strlen($item[1]);
- //mlog("len(item[1])=$len\n");
- if ($what=="full")
- {
- $q->execute(array(":NIOKR_TYPE"=>$type,":INV_NO"=>$item[0],":NAME"=>$item[1],
- ":CREATOR"=>$item[2],":N_DOG"=>$item[3],":AUTHOR"=>$item[4],
- ":AYEAR"=>$item[5],":CITY"=>$item[6],":ANNOTATION"=>$item[7],
- ":ACOUNT"=>$item[8],":GRIF"=>$item[9],":ACOMMENT"=>$item[10]));
- }
- else if ($what==1)
- {
- $q->execute(array(":NIOKR_TYPE"=>$type,":INV_NO"=>$item[0]));
- }
- else
- {
- $q->execute();
- }
- }
- mlog("insert done, set q=null\n");
- $q=null;
- }
- function TestLoadIbase()
- {
- if (extension_loaded("PDO_Firebird")==false)
- {
- mlog_err("FAIL: Extension 'PDO_Firebird' not loaded.\n");
- die();
- }
- mlog_ok("Расширение 'PDO_Firebird' загружено\n");
- }
- function mlog($s)
- {
- $l=date("H:i:s")." ".$s;
- echo($l);
- $f=@fopen("niokr.log","a+t");
- if ($f)
- {
- @fwrite($f,$l);
- fclose($f);
- }
- }
- function mlog_err($s)
- {
- $l=date("H:i:s")." ".$s;
- echo("<font color=red>".$l."</font>\n");
- $f=@fopen("niokr.log","a+t");
- if ($f)
- {
- @fwrite($f,$l);
- fclose($f);
- }
- $d=debug_backtrace();
- foreach($d as $t)
- {
- $f="";
- if (key_exists("function",$t))
- $f="(".$t['function'].")";
- echo("Stack: {$t['file']}/{$t['line']} $f\n");
- }
- echo("</pre>");
- }
- function mlog_ok($s)
- {
- mlog("<font color=green>".$s."</font>");
- }
- function MakeData()
- {
- global $data;
- $data=array();
- for ($i=1; $i<=50; $i++)
- {
- $data[]=array(
- "=$i= 50Н от 25.05.2005",
- "Отчет о НИР \"Совершенствование технологии сорбционного цианирования золота в условиях повышенной нагрузки на сорбионные аппараты при обоснованном загрублении тонины помола руды.\" Этап 1.- Оценка состояния действующих тех.цепочек сорбций по пропускной способности и параметров исходно пульпы по танине и помола и формам включения серебра.",
- "Российская академия естественных наук институт проблем природоиспользования",
- "Контракт №31 от 15.03.2005",
- "Башкатов А.Д.",
- "2005г.",
- "Москва",
- "Наращивание переработки ",
- //руды на ГМЗ-2 не сопровождается достаточно науч.исслед. необходимых параметров сорбций.",
- "$i",
- "не секретно",
- "НИР");
- }
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement