Advertisement
tranvi

pdo bug - php source code

May 2nd, 2012
170
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 5.68 KB | None | 0 0
  1. <pre>
  2. <h1>Test for PDO::FIREBIRD/NIOKR</h1>
  3. <?
  4.  
  5. $data=array();
  6.  
  7. TestLoadIbase();
  8.  
  9. require_once("lib_interbase.php");
  10.  
  11. mlog("create new PDO::FIREBIRD()\n");
  12. mlog("try connect to server_cru:niokr2 db\n");
  13. $db = new PDO("firebird:dbname=server_cru:f:\\sqlbase\\niokr\\niokr2.gdb",
  14.         "sysdba", "masterkey",
  15.         array(PDO::ATTR_AUTOCOMMIT=>false));
  16. $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  17. $db->setAttribute(PDO::FB_ATTR_TIMESTAMP_FORMAT,"%d.%m.%Y %H:%M:%S");
  18. $db->setAttribute(PDO::FB_ATTR_DATE_FORMAT,"%d.%m.%Y");
  19. $db->setAttribute(PDO::FB_ATTR_TIME_FORMAT,"%H:%M:%S");
  20.  
  21. $db->beginTransaction();
  22.  
  23. try{
  24.     MakeData();
  25.     TestQueryDelete();
  26.     mlog("Test on simple SQL, without params\n");
  27.     TestInsert("");
  28.     TestQueryDelete();
  29.     mlog("Test on SQL with 2 params\n");
  30.     TestInsert(1);
  31.     TestQueryDelete();
  32.     mlog("Test on full SQL with 11 params\n");
  33.     TestInsert("full");
  34. }
  35. catch(Exception $e)
  36. {
  37.     mlog_err("Exception: ".$e->getMessage());
  38.     $d=debug_backtrace();
  39.     foreach($d as $t)
  40.     {
  41.         $f="";
  42.         if (key_exists("function",$t))
  43.             $f="(".$t['function'].")";
  44.         mlog("Stack: {$t['file']}/{$t['line']} $f\n");
  45.     }    
  46. }
  47.  
  48. $db->commit();
  49. mlog("Closing db\n");
  50. $db=null;
  51.  
  52. mlog("all done\n");
  53. die();
  54.  
  55.  
  56. function TestQueryDelete()
  57. {
  58.     global $db;
  59.     mlog("delete from tb_niokr \n");
  60.     $db->Query("delete from tb_niokr");
  61. }
  62.  
  63.  
  64. function TestInsert($what)
  65. {
  66.     global $db,$data;
  67.  
  68.     $type=1;
  69.     mlog("Start insert\n");
  70.  
  71.     if ($what=="full")
  72.     {
  73.         /* full sql row */
  74.         $sql="insert into tb_niokr  
  75.            ( NIOKR_TYPE, INV_NO, NAME, CREATOR, N_DOG, AUTHOR, AYEAR,  
  76.                CITY, ANNOTATION, ACOUNT, GRIF, ACOMMENT) values
  77.            (:NIOKR_TYPE,:INV_NO,:NAME,:CREATOR,:N_DOG,:AUTHOR,:AYEAR,
  78.               :CITY,:ANNOTATION,:ACOUNT,:GRIF,:ACOMMENT)";
  79.     }
  80.     else if ($what==1)
  81.     {
  82.         $sql="insert into tb_niokr  
  83.            ( NIOKR_TYPE, INV_NO, NAME, CREATOR, N_DOG, AUTHOR, AYEAR,  
  84.                CITY, ANNOTATION, ACOUNT, GRIF, ACOMMENT) values
  85.            (:NIOKR_TYPE,:INV_NO,'','','','','','','','','','')";
  86.     }
  87.     else
  88.     {
  89.         $sql="insert into tb_niokr  
  90.            ( NIOKR_TYPE, INV_NO, NAME, CREATOR, N_DOG, AUTHOR, AYEAR,  
  91.                CITY, ANNOTATION, ACOUNT, GRIF, ACOMMENT) values
  92.            (1,'','','','','','','','','','','')";
  93.     }
  94.     $q=$db->prepare($sql);
  95.     $row=0;
  96.     foreach ($data as $item)
  97.     {        
  98.         mlog("Call execute, row=$row\n");
  99.         $row++;
  100.         $len=strlen($item[1]);
  101.         //mlog("len(item[1])=$len\n");
  102.         if ($what=="full")
  103.         {
  104.             $q->execute(array(":NIOKR_TYPE"=>$type,":INV_NO"=>$item[0],":NAME"=>$item[1],
  105.                               ":CREATOR"=>$item[2],":N_DOG"=>$item[3],":AUTHOR"=>$item[4],
  106.                               ":AYEAR"=>$item[5],":CITY"=>$item[6],":ANNOTATION"=>$item[7],
  107.                               ":ACOUNT"=>$item[8],":GRIF"=>$item[9],":ACOMMENT"=>$item[10]));
  108.         }
  109.         else if ($what==1)
  110.         {
  111.             $q->execute(array(":NIOKR_TYPE"=>$type,":INV_NO"=>$item[0]));
  112.         }
  113.         else
  114.         {
  115.             $q->execute();
  116.         }
  117.     }
  118.     mlog("insert done, set q=null\n");
  119.     $q=null;    
  120. }
  121.  
  122. function TestLoadIbase()
  123. {
  124.     if (extension_loaded("PDO_Firebird")==false)
  125.     {
  126.         mlog_err("FAIL: Extension 'PDO_Firebird' not loaded.\n");
  127.         die();
  128.     }
  129.     mlog_ok("Расширение 'PDO_Firebird' загружено\n");
  130. }
  131.  
  132. function mlog($s)
  133. {
  134.     $l=date("H:i:s")." ".$s;
  135.     echo($l);
  136.     $f=@fopen("niokr.log","a+t");
  137.     if ($f)
  138.     {
  139.         @fwrite($f,$l);
  140.         fclose($f);
  141.     }
  142. }
  143.  
  144. function mlog_err($s)
  145. {
  146.     $l=date("H:i:s")." ".$s;
  147.     echo("<font color=red>".$l."</font>\n");
  148.     $f=@fopen("niokr.log","a+t");
  149.     if ($f)
  150.     {
  151.         @fwrite($f,$l);
  152.         fclose($f);
  153.     }
  154.     $d=debug_backtrace();
  155.     foreach($d as $t)
  156.     {
  157.         $f="";
  158.         if (key_exists("function",$t))
  159.             $f="(".$t['function'].")";
  160.         echo("Stack: {$t['file']}/{$t['line']} $f\n");
  161.     }
  162.     echo("</pre>");
  163. }
  164.  
  165. function mlog_ok($s)
  166. {
  167.     mlog("<font color=green>".$s."</font>");
  168. }
  169.  
  170.  
  171. function MakeData()
  172. {
  173.     global $data;
  174.  
  175.     $data=array();
  176.  
  177.     for ($i=1; $i<=50; $i++)
  178.     {
  179.         $data[]=array(
  180.             "=$i= 50Н от 25.05.2005",
  181.             "Отчет о НИР \"Совершенствование технологии сорбционного цианирования золота в условиях повышенной нагрузки на сорбионные аппараты при обоснованном загрублении тонины помола руды.\" Этап 1.- Оценка состояния действующих тех.цепочек сорбций по пропускной способности и параметров исходно пульпы по танине и помола и формам включения серебра.",
  182.             "Российская академия естественных наук институт проблем природоиспользования",
  183.             "Контракт №31 от 15.03.2005",
  184.             "Башкатов А.Д.",
  185.             "2005г.",
  186.             "Москва",
  187.             "Наращивание переработки ",
  188.             //руды на ГМЗ-2 не сопровождается достаточно науч.исслед. необходимых параметров сорбций.",
  189.             "$i",
  190.             "не секретно",
  191.             "НИР");        
  192.     }
  193.  
  194. }
  195. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement