<?php
declare(strict_types=1);
$lane=getenv('READ12_LANE')?:getenv('COMMENT_LANE');$dm=getenv('POC_DIALECT')==='dm';$runtime=__DIR__.'/private';
if(!is_dir($runtime))mkdir($runtime,0700);chmod($runtime,0700);
$check=static function($ok,$message){if(!$ok)throw new RuntimeException($message);};
$persist=static function($name,$value)use($runtime){$json=json_encode($value,JSON_PRETTY_PRINT|JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES|JSON_PRESERVE_ZERO_FRACTION);if($json===false)throw new RuntimeException('Evidence encoding failure');file_put_contents($runtime.'/'.$name,$json);chmod($runtime.'/'.$name,0600);};
$connect=static function()use($dm){return new PDO($dm?'dm:host=127.0.0.1;port=5238;schema=AIZHCT_APP':'mysql:host='.getenv('POC_AI_HOST').';port='.getenv('POC_AI_PORT').';dbname='.getenv('POC_AI_SCHEMA').';charset='.getenv('POC_AI_CHARSET'),getenv('POC_AI_USER'),getenv('POC_AI_PASSWORD'),[PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION,PDO::ATTR_CASE=>PDO::CASE_LOWER]);};
$db=$connect();
$query=static function($pdo,$sql,$params=[])use($runtime){
 if(!preg_match('/^SELECT\b/i',$sql)||preg_match('/;|\b(?:INSERT|UPDATE|DELETE|ALTER|CREATE|DROP|INTO|CALL|FOR\s+UPDATE)\b/i',$sql))throw new RuntimeException('Independent SELECT gate');
 $s=$pdo->prepare($sql);$bindings=[];foreach(array_values($params) as $i=>$v){$bindings[]=['position'=>$i+1,'value'=>(string)$v,'pdo_type'=>PDO::PARAM_STR];$s->bindValue($i+1,(string)$v,PDO::PARAM_STR);}$s->execute();$rows=$s->fetchAll(PDO::FETCH_ASSOC);foreach($rows as &$r){foreach($r as &$v)if(is_resource($v))$v=stream_get_contents($v);unset($v);ksort($r);}unset($r);
 $j=json_encode(['layer'=>'independent original PDO SELECT','queryString'=>$s->queryString,'bindValue'=>$bindings,'rowCount'=>$s->rowCount(),'rows'=>$rows],JSON_UNESCAPED_UNICODE|JSON_PRESERVE_ZERO_FRACTION);if($j===false)throw new RuntimeException('Evidence encoding failure');file_put_contents($runtime.'/oracle.jsonl',$j."\n",FILE_APPEND|LOCK_EX);chmod($runtime.'/oracle.jsonl',0600);return $rows;
};
$read=static function($sql,$params=[])use($connect,$query){return $query($connect(),$sql,$params);};
$identity=$dm?$read("SELECT SYS_CONTEXT('USERENV','CURRENT_SCHEMA') schema_name FROM DUAL"):$read('SELECT DATABASE() schema_name,VERSION() version');
$check($identity[0]['schema_name']===($dm?'AIZHCT_APP':getenv('POC_AI_SCHEMA'))&&($dm||strpos($identity[0]['version'],'5.6.')===0),'Actual approved DB identity');
