postgresql que carece de soporte para consultas parametrizadas

No pude averiguar buscando en Google. Así que decidí preguntar aquí. ¿Se admite la consulta parameterezed i postgre usando php pdo?

Si no. ¿Cómo puedo alcanzar la misma seguridad?

Tenga en cuenta que la seguridad, por lo tanto, la prueba de la inyección es una necesidad absoluta. Usar otra base de datos no es una opción como nota al margen.

En una respuesta a Fonini;

Consultas parametrizadas como estas:

$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 )); 

no usando bindParam

Esto no se inserta para mí.

Mi código se ve así:

 $project = new Project(); $project->id = 'sequence string'; $project->projectName = 'A project name'; $project->saveProject(); 

y en el modelo de proyecto:

 public function saveProject() { $this->_db->query("INSERT INTO projects VALUES (:id,:projectName)", array(':id' => $this->_projectFields['id'], ':projectName' => $this->_projectFields['projectName']))->save(); 

}

el método de consulta en mi clase db coloca la consulta en el campo $ _query privado, y el parámetro aray en el campo privado $ _parameters. Luego llamo al método save, que prepara la instrucción, dando $ this -> _ query como parámetro a PDO :: prepare (), y luego llamo a PDO :: execute dando $ this -> _ parameters como parámetro. Esto no se puede insertar

Sí, las consultas parametrizadas funcionan perfectamente con PHP PDO.

 $db = new PDO('pgsql:host=localhost;dbname=cars', 'user', 'password'); $cars = $db->prepare('SELECT * FROM cars WHERE id = :id'); $cars->bindParam(':id', $id = 20, PDO::PARAM_INT); $cars->execute(); $result = $cars->fetch(); echo 'Name: ' . $result['name']; 

Hay varias formas de entregar valores en lugar de crear una instrucción SQL con la representación de texto de los valores.

Las declaraciones preparadas son muy probablemente lo que estás pensando.

También puede crear funciones (“procedimientos almacenados”) y entregar valores como parámetros.

Aquí hay una respuesta relacionada a una pregunta relacionada