我无法通过浏览谷歌找到。所以我决定在这里问。参数化查询支持我postgre使用PHP pdo?postgresql缺乏对参数化查询的支持
如果不是。我怎样才能达到同样的安全?
注意安全,因此注射证明是绝对必须的。使用另一个数据库不是一个选项作为旁注。
在对Fonini的回应中;
参数化查询,像这样:
$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
));
不使用bindParam
这不插入我。
我的代码看起来像这样:
$project = new Project();
$project->id = 'sequence string';
$project->projectName = 'A project name';
$project->saveProject();
,并在项目模型:
public function saveProject() {
$this->_db->query("INSERT INTO projects VALUES (:id,:projectName)", array(':id' => $this->_projectFields['id'], ':projectName' => $this->_projectFields['projectName']))->save();
}
在我的DB类的查询方法将查询私人$ _query字段以及私有$ _parameters字段中的aray参数。然后我调用保存方法,准备语句,将$ this - > _ query作为参数传递给PDO :: prepare(),然后调用PDO :: execute给出$ this - > _ parameters作为参数。这不能插入
为什么不呢?我不知道PDO,但PostgreSQL支持JDBC和ODBC中的参数化查询。 –
因为如果我使用非参数化查询,它会插入数据,并且使用参数化,它不会。使用完全相同的数据。我通过打印r和回声确认了这一点。 –
显示您的代码。问题在于你,而不是PostgreSQL的。 –