Die Anzahl der Parameter in der vorbereiteten Anweisung stimmt nicht mit der Anzahl der durch bind_param gebundenen Variablen überein
P粉578343994
P粉578343994 2023-08-22 23:51:55
0
1
433
<p>Hier ist mein Codeausschnitt: </p> <pre class="brush:php;toolbar:false;">$stmt = $mysqli->prepare("SELECT DISTINCT model FROM Vehicle_types WHERE year = ? AND make = '?' ORDER by model"); $stmt->bind_param('is', $year, $make); $stmt->execute();</pre> <p>Wenn ich die Werte für $year und $make ausgebe, kann ich die Werte sehen, aber wenn ich dieses Skript ausführe, erhalte ich einen Nullwert und die folgende Warnung erscheint in meiner Protokolldatei: </ p> ; <blockquote> <p>PHP-Warnung: mysqli_stmt::bind_param(): Anzahl der Variablen stimmt nicht mit der Anzahl der Parameter in der vorbereiteten Anweisung überein</p> </blockquote> <p>In diesem Fall ist der Jahrestyp in der Datenbank int(10). Ich habe versucht, ihn zur Übergabe in den Typ int zu konvertieren, und make ist ein varchar(20) mit der Codierung utf8_unicode_ci. Gibt es etwas, das mir fehlt? </p>
P粉578343994
P粉578343994

Antworte allen(1)
P粉513316221

您的预处理语句是错误的,应该是:

$stmt = $mysqli->prepare("
    SELECT DISTINCT model FROM vehicle_types WHERE year = ? AND make = ? ORDER by model
");
$stmt->bind_param('is', $year, $make);
$stmt->execute();

当您准备一个语句时,您必须用问号而不是引号替换每个变量。在引号内的问号将不会被识别为占位符。

问号的数量必须等于bind_param()中的变量数量

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage