Я удивлен, что это возвращает что-то с тем, что вы показали.Ваша переменная $id
, вероятно, содержала 102 перед инструкцией ->prepare
Я предполагаю, что ваш SP принимает идентификатор страны на входе в переменную с именем country_id
, которую вы не показали
Чтобы заставить это работать, вы должны подготовить, связать и выполнить 2 раза:
$stmt1 = $dbh->prepare("CALL sp_get_country_by_id(?)");
$id = 102;
$stmt1->bindParam(1, $id);
$stmt1->execute();
print_r($stmt1->fetch(PDO::FETCH_ASSOC));
$stmt1 = $dbh->prepare("CALL sp_get_country_by_id(?)");
$id = 103;
$stmt1->bindParam(1, $id);
$stmt1->execute();
print_r($stmt1->fetch(PDO::FETCH_ASSOC));
Но если вам нужно сделать это несколько раз, лучше создать для него функцию:
print_country_data_array(102);
print_country_data_array(103);
function print_country_data_array($countryID){
global $dbh;
$stmt1 = $dbh->prepare("CALL sp_get_country_by_id(?)");
$stmt1->bindParam(1, $countryID);
$stmt1->execute();
print_r($stmt1->fetch(PDO::FETCH_ASSOC));
}