0
$query = "SELECT field1, field2, field3, date_created, id FROM database WHERE field1 LIKE $1 OR field2 LIKE $1 ORDER BY date_created $2 LIMIT $3 OFFSET $4";
$result = pg_query_params($this->pgConnect($this->database_conn_string),     $query, array('%' . $this->input . '%', $this->order, $this->numberOfItems, $this->selectField1FromDatabaseSearchOffset()));
return $result;

我没有收到任何有用的错误,只是错误与 $2 相关,它将设置为 DESC 或 ASC。如果我停止尝试传递,错误就会消失,所以这显然是传递的问题以这种方式订购但是我不知道为什么以及如何以安全的方式进行订购。该值来自一个 url 参数,通过 'htmlspecialchars' 然后传递给它。

更新-应该提到如果我将它直接放在 $query 中它确实有效,例如:

$query = "SELECT field1, field2, field3, date_created, id FROM database WHERE field1 LIKE $1 OR field2 LIKE $1 ORDER BY date_created $this->order LIMIT $2 OFFSET $3";

尽管我认为这不是一种安全的方法,而且不是很一致!

4

0 回答 0