Das muss ein Anfängerfehler sein, aber ich sehe es nicht. Hier ist ein Ausschnitt aus meinem Code:PHP mysqi bind_param Anzahl der Variablen stimmt nicht mit der Anzahl der Parameter in der vorbereiteten Anweisung überein
$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();
Wenn ich die Werte für $ year Echo und $ machen, ich Werte sehe, aber wenn ich dieses Skript ausführen, bekomme ich einen Nullwert, und die folgenden Warnung erscheint in meiner Protokolldatei:
PHP Warning: mysqli_stmt::bind_param(): Number of variables doesn't match number of parameters in prepared statement
in diesem Fall ist Jahr in der Datenbank in Typ int (10), und ich habe versucht, eine Kopie vorbei, die als int geworfen worden waren, und macht eine varchar (20) mit der Codierung utf8_unicode_ci. Fehle ich etwas?
Casting sind. Was haben Sie versucht, mit dem ** ist ** in der Methode bind_param? –
Es ist die $ types Zeichenfolge. Das "ist" sollte bedeuten, dass der erste Parameter eine Ganzzahl und der zweite eine Zeichenkette ist. – TMorgan