Je n'ai pas réussi à le découvrir en affichant google. J'ai donc décidé de demander ici. La requête paramétrée est-elle supportée par postgre utilisant php pdo?postgresql ne supportant pas les requêtes paramétrables
Sinon. Comment puis-je atteindre la même sécurité? Notez que la sécurité, donc l'injection prouve est un must absolu. Utiliser une autre base de données n'est pas une option en tant que sidenote.
En réponse à Fonini;
requêtes paramétrées comme ceci:
$st = $db->prepare(
"insert into vendors set
first_name = :first_name,
last_name = :last_name"
);
$st->execute(array(
':first_name' => $vendor->first_name,
':last_name' => $vendor->last_name
));
n'utilisant bindParam
n'insère pas pour moi.
Mon code ressemble à ceci:
$project = new Project();
$project->id = 'sequence string';
$project->projectName = 'A project name';
$project->saveProject();
et dans le modèle de projet:
public function saveProject() {
$this->_db->query("INSERT INTO projects VALUES (:id,:projectName)", array(':id' => $this->_projectFields['id'], ':projectName' => $this->_projectFields['projectName']))->save();
}
la méthode d'interrogation dans ma classe db met la requête dans le _query privé $ champ, et le paramètre aray dans le champ $ _parameters privé. J'appelle ensuite la méthode save, qui prépare l'instruction, en donnant $ this -> _ query comme paramètre à PDO :: prepare(), puis appelle PDO :: execute en donnant les paramètres $ this -> _ en paramètre. Cela ne permet pas d'insérer
Pourquoi pas? Je ne connais pas PDO, mais PostgreSQL supporte les requêtes paramétrées en JDBC et ODBC. –
Parce que si j'utilise des requêtes non paramétrées, il insère des données, et uaing paramétré, il doesnt. En utilisant exactement les mêmes données. J'ai validé cela avec print r et echos. –
Montrez votre code. Le problème est de votre côté, pas de PostgreSQL. –