(это может быть немного больше, чем вы просили)
Вы, кажется, упускаете некоторые хорошие вещи, которые делают подготовленные заявления.
Во-первых, вы обычно не хотите передавать значения непосредственно в запрос. (иногда это необходимо, но не здесь). Делая это, вы убираете все хорошее, что защищает от инъекций SQL. Вместо этого вы хотите отправить их в качестве параметров после того, как подготовили запрос.
Во-вторых, находясь в цикле, вы можете сэкономить время и ресурсы, если вы выполняете один и тот же запрос снова и снова, подготавливая оператор, а затем изменяя только значения, отправляемые в этот подготовленный оператор, используя PDOStatement::bindParam()
функция.
В-третьих, fetchAll()
не принимает 'fetch_style' PDO :: FETCH_ASSOC. fetch()
делает. Но я думаю, что вы можете обойтись по умолчанию или без использования fetchAll. Вам придется проверить это и посмотреть, что вам нужно. Вот Получить все документы
$sql_sub = "SELECT * FROM menu_config WHERE client_id = :client_id AND id = :id ";
$query = $pdo->prepare($sql_sub);
for($i=0;$i<$num_results;$i++){
$query->bindParam(':client_id', $client_id);
$query->bindParam(':id', $data[$i]['root_menu_id']);
$query->execute();
$data_s = $query->fetchAll();
$sub_menu_title = "<strong>".$data[$i]['title']."</strong>";
if(empty($data_s[0]['title'])){
$main_menu_title = '<span style="color:#FF0000;font-weight:bold;">
No Main Menu Assigned to Sub Menu</span>';
}else{
$main_menu_title = $data_s[0]['title'];
}
$men_title = $data[$i]['title'];
}