Üdv,
Adott egy sql file, amit bizonyos időközönként phpból újra és újra le kell futatni, ami az adatbázis szerekezetet újra létrehozza letörli stb.
Ennek megvalósítására a php, pdo, mysql áll rendelkezésre.
A probléma az, hogy a pdo-t nem tudom rávenni hogy dupla delimitert figyelembe vegyen, és szeritnem ez a hibám kiváltója. a kérdést azért is tetttem fel, mert phpmyadmin szépen lefuttatja ugyanazokkal a jogosulságokkal, de én már az ötletekből kifogytam...
sql:
delimiter //
create trigger `azEnTriggerem` before delete on `tablamNeve`
for each row
begin
delete from masikTablamNeve where id = old.id;
end//
delimiter ;
A delimiter ; után van enter de mintha a pdo ezt kiszedné.
A pdo-t a köv képpen használom:
Static fv-en keresztül példányosítom
case 'socket':
try {
$dbh = new PDO($dbType.":host=".$server.";dbname=".$dataBase."; unix_socket=/tmp/mysql.sock", $userName, $password, array(PDO::ATTR_PERSISTENT => true));
} catch (PDOException $e) {
$this->fatalError("Kritikus hiba az adatbázis kapcsolat felépítésénél (socket): ".$e->getMessage()."
Szerver: ".$server,__CLASS__,__FUNCTION__,__LINE__);
}
break;
Köszi alőre is a segítséget,
A kód létrehozása szimpla exec-el:
$this->dbHandler->exec($sql);
Verziószámok:
php 5.2
mysql: 5.1.30
Mizu
- 1153 megtekintés