Questo deve essere un errore newbie, ma non lo vedo. Ecco un frammento dal mio codice:Php mysqi bind_param Il numero di variabili non corrisponde al numero di parametri nell'istruzione preparata
$mysqli = mysqli_connect($dbCredentials['hostname'],
$dbCredentials['username'], $dbCredentials['password'],
$dbCredentials['database']);
if ($mysqli->connect_error) {
throw new exception('Connect Error (' . $mysqli->connect_errno . ') '
. $mysqli->connect_error);
}
$stmt = $mysqli->prepare("SELECT DISTINCT model FROM vehicle_types
WHERE year = ? AND make = '?' ORDER by model");
$stmt->bind_param('is', $year, $make);
$stmt->execute();
Quando Mi unisco i valori a $ l'anno e $ faccio, sto vedendo i valori, ma quando ho eseguito questo script, ottengo un valore nullo, e il seguente avviso appare nel mio file di registro:
PHP Warning: mysqli_stmt::bind_param(): Number of variables doesn't match number of parameters in prepared statement
in questo caso, quest'anno è presente nel database di tipo int (10), ed ho provato passando una copia che era stato lanciato come un int, e fare un varchar (20) con la codifica utf8_unicode_ci. Mi sto perdendo qualcosa?
Cosa hai provato a fare con quello ** è ** nel metodo bind_param? –
È la stringa $ types. Il "è" dovrebbe significare che il primo parametro è un numero intero e il secondo è una stringa. – TMorgan