我将我的 sql 查询存储为字符串,然后稍后在 PDO 中使用它们,如下所示。
有一行我不明白:
eval("\$query = \"$query\";");
从 docs..eval 应该运行一个字符串作为 PHP 代码。为什么我不能$query
直接使用?运行一串 SQL 是什么意思?
此代码有效。我只是不知道eval()
声明是为了什么。
请注意,这是安全eval()
的,因为输入不是用户定义的。
"arc_id" => "SELECT id FROM credentials WHERE email=?",
"arc_id_from_hash" => "SELECT id FROM credentials WHERE pass=?",
"signin_pass" => "SELECT pass FROM credentials WHERE email=?",
"signin_validate" => "SELECT id, hash FROM credentials WHERE email=? AND pass=?"
);
public function __construct()
{
$this->db_one = parent::get();
}
public function _pdoQuery($fetchType, $queryType, $parameterArray=0) // needs review
{
$query=$this->sql_array[$queryType];
// what?
eval("\$query = \"$query\";");
// if not input parameters, no need to prep
if($parameterArray==0)
{
$pdoStatement = $this->db_one->query($query);