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:
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:
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!