在我的项目中,我使用了很多pdo查询,尤其是准备好的语句,因为我的文件看起来很糟糕。为了清理我的文件,我将在谁编写了我准备好的语句的地方以及我的变量的某个地方执行sql文件,并获取我的结果数据。
它用于带有PHP 7.2(我具有mysqli和pdo_mysql启用),Apache 2.4的产品Windows Server。我试过执行一个sql文件,这个词很好,但请问它是如何与准备好的语句及其变量/绑定一起工作的,以及在php中是否真的可行。
[php]
//1 - execute a normal sql file (no prepared)
function executeSqlFile($filesql){
$req = file_get_contents($filesql);
Sql($req);
}
//2 - my try to execute a prepared sql file
function executeSqlPreparedFile($filesql) {
$query = file_get_contents($filesql);
$array = explode("\n", $query);
$b = true;
for ($i=0; $i < count($array) ; $i++) {
$str = $array[$i];
if ($str != '') {
$str .= ';';
$b &= mysql_query($str);
}
}
return $b;
}
有关包含在query.sql中的跟随代码:
SELECT
race1.start_time,
race1.finish_time,
race1.penalty,
race1.result_time,
competitors.number,
competitors.name,
competitors.firstname,
competitors.club_abrev
FROM race1
INNER JOIN competitors
ON race1.number = competitors.number
WHERE competitors.ishere = 1
AND competitors.isfinish = 1
AND competitors.categorie_number = $categorie_number
ORDER BY competitors.sex,
competitors.categorie_number,
race1.result_time ASC
我会使用=>
之类的东西execute(PATH/query.sql, array(
'categorie_number' => $categorie_key,
'bind_parameter' => $value_during_the_execution)
)