У меня проблемы, следующий код не дает мне никаких результатов. однако, если я раскомментирую указанную строку и закомментирую строку bind_param, она работает, но разве это не побеждает цель mysqli? мой var_dump дает мою строку (1) "1"
function teams($mysqli, $league_id) { echo 'league id = ' . var_dump($league_id); $sql = "SELECT team_id, team_name FROM teams where league_id='?'"; // $sql = "SELECT team_id, team_name FROM teams where league_id='".$league_id."'"; $stmt = $mysqli->prepare($sql); $stmt->bind_param('i', $league_id); $stmt->execute(); $stmt->bind_result($col1, $col2); while($stmt->fetch()) { $results[] = array( 'team_id' => $col1, 'team_name' => $col2 ); } $stmt->close(); var_dump($results); return $results; }
Функция bool mysqli_stmt :: bind_param (строка $ types, mixed & $ var1 [, mixed & $ …])
принимает следующие типы $
Типовые спецификации
Описание персонажа
i соответствующая переменная имеет тип integer
d соответствующая переменная имеет тип double
Соответствующая переменная имеет тип string
b соответствующая переменная является блобом и будет отправлена в пакетах
Вы указываете $ types как «i» и присваиваете значение как строку в одинарных кавычках. Удалите кавычки и попробуйте преобразовать $ league_id в значение int.
http://php.net/manual/en/mysqli-stmt.bind-param.php
счастливое кодирование !!