以下に示すように、SQLクエリを文字列として保存し、後でPDOで使用します。
私が理解していない1つの行があります:
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);