Używam instrukcji mysqli przygotować do kwerendy mój db z wieloma ograniczeniami. Uruchomiłem kod w moim pliku testowym i działa doskonale. Jednak kiedy przenieść kod do mojego pliku żywo zgłasza błąd poniżej:PHP mysqli instrukcja przygotowania nie działa
PHP Warning: mysqli_stmt :: bind_result(): Liczba zmiennych powiązań nie pasuje do liczby pól w oświadczeniu przygotowanym w C: \ wamp \ WWW \ firecom \ firecom.php na linii 80
PHP Wskazówki: zmienna niezdefiniowany: wyniki w C: \ wamp \ WWW \ firecom \ firecom.php na linii 89
Oba parametry są ustawione poprawnie, ale coś je zrzuca.
Kod:
$query = $mysqli->prepare("SELECT * FROM calls WHERE wcccanumber = ? && county = ?");
$query->bind_param("ss", $wcccanumber, $county);
$query->execute();
$meta = $query->result_metadata();
while ($field = $meta->fetch_field()) {
$parameters[] = &$row[$field->name];
}
call_user_func_array(array($query, 'bind_result'), $parameters);
while ($query->fetch()) {
foreach($row as $key => $val) {
$x[$key] = $val;
}
$results[] = $x;
}
print_r($results['0']);
$ query var_dump:
object(mysqli_stmt)#27 (10) { ["affected_rows"]=> int(-1) ["insert_id"]=> int(0) ["num_rows"]=> int(0) ["param_count"]=> int(2) ["field_count"]=> int(13) ["errno"]=> int(0) ["error"]=> string(0) "" ["error_list"]=> array(0) { } ["sqlstate"]=> string(5) "00000" ["id"]=> int(1) }
można użyć && w zapytaniu SQL? myślałem, że to było I w klauzuli WHERE. spróbuj WYBIERZ * Z połączeń WHERE wcccanumber =? AND county =? –
@JeffHawthorne Właściwie '&&' jest synonimem AND w mysql: http://dev.mysql.com/doc/refman/5.0/en/logical-operators.html#operator_and –
Ostrzeżenie '$ results' jest łatwe - Serwer sprawdza niezdefiniowane zmienne, a lokalny nie. Zdefiniuj '$ results' przed pętlą' while ($ query-> fetch()) 'i zniknie. –