Bonjour à tous,
Je suis actuellement en train de réaliser un projet qui me demande de travailler avec un fichier .sql qui contient des insert de ce genre (ce sont des INSERT provenant d'une base MySQL) :
...et je voudrais exécuter automatiquement ses insert. Pour cela j'ai écris un script qui (normalement) doit me supprimer les quotes inversées afin que la syntaxe soit compatible postgreSQL et par la suite les executer. Or, je me retrouve avec une erreur au niveau du pg_query que je n'arrive pas à resoudre
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 INSERT INTO questions (`qid`, `sid`, `gid`, `type`, `title`, `question`, `preg`, `help`, `other`, `mandatory`, `lid`) VALUES ('11', '2', '6', 'L', 'Q-02', 'A quel corps appartenez-vous ?', '', '', 'N', 'Y', '0'); INSERT INTO questions (`qid`, `sid`, `gid`, `type`, `title`, `question`, `preg`, `help`, `other`, `mandatory`, `lid`) VALUES ('12', '2', '6', 'L', 'Q-03', 'Votre catégorie ?', '', '', 'N', 'Y', '0'); INSERT INTO questions (`qid`, `sid`, `gid`, `type`, `title`, `question`, `preg`, `help`, `other`, `mandatory`, `lid`) VALUES ('13', '2', '6', 'S', 'Q-04', 'Votre service ?', '', '', 'N', 'N', '0');
Voici mon script:
Une idée d’où cela pourrait venir?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 <?php $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION; $bdd = new PDO('pgsql:host=localhost;dbname=BRL', 'user', 'mdp', $pdo_options); $filename = "insert_script.sql"; // fichier texte $file = fopen($filename, "r"); $sql = fread($file, filesize($filename)); fclose($file); $requetes= $sql; $array_requetes = str_replace( "`", "", $requetes); $array_requetes = explode(";\n",$requetes); foreach($array_requetes AS $query){ pg_query($bdd,$query); echo "OK.<br>"; } ?>
Merci d'avance!
Partager