Witam,

Naspisalem parser, ktory w instalatorze pluginow mieli plik .sql, rozdzielajac zapytania i wysylajac je do PDO->exec(). Wczoraj mialem maly problem, poniewaz skrypt wysypywal sie na jednym z zapytan, a mianowicie:

  1. INSERT INTO tblplugins (name, active) VALUES ("news", true)


Twierdzac, ze kolumna 'news' nie istnieje.

Po zmianie na:


  1. INSERT INTO tblplugins (name, active) VALUES ('news', true)


Dziala poprawnie.
Czy to normalne zachowanie PDO? Czy tez moze zalezy to od tego, jak sam parser podaje te zapytania?

  1. <?php
  2. $this->runSQL("INSERT INTO tblplugins (name, active) VALUES ('".$this->sName."', true)"); // ver1: poprawna
  3. $this->runSQL('INSERT INTO tblplugins (name, active) VALUES (''.$this->sName.'', true)'); //ver2: poprawna
  4. $this->runSQL('INSERT INTO tblplugins (name, active) VALUES ("'.$this->sName.", true)"); // ver3: wspomniany blad
  5. ?>


Metoda runSQL jest prostacka:

  1. <?php
  2. public function runSQL($sQuery)
  3. {
  4. $this->sql->exec($sQuery);
  5. }
  6. ?>