Выполнять динамические запросы в php с pdo для файла * .sql с параметрами / переменными - PullRequest
0 голосов
/ 08 апреля 2019

В моем проекте я использую множество запросов pdo, специально подготовленных операторов, из-за того, что мои файлы выглядят так плохо.Для очистки моих файлов я выполняю sql-файл, в который записываю мои подготовленные операторы и где-то мои переменные, и получаю мои результаты.

Это для Windows Server с PHP 7.2 (у меня включены mysqli и pdo_mysql),Апач 2.4.Я попытался выполнить файл 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;
}

Для последующего кода содержится в запросе.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)
)
...