2017-05-10 3 views
-1

deklariert // Ich möchte das $ -Produkt mit einem Wert von i9-7820aa einfügen und ich weiß bind_param kann einer von vier Typen sein i - Ganzzahl d - doubles - Zeichenfolge b - BLOB und ich habe diesen Fehler mysqli_stmt :: bind_param(): Anzahl der Variablen Anzahl der Parameter nicht inwie kann ich dies als eine Zeichenfolge in bind_param

$product = 'i9-7820aa'; 
$name = mysqli_real_escape_string($connect, $_POST['nickname']); 
$show = mysqli_real_escape_string($connect, $_POST['show']); 

$stmt = $connect->prepare("INSERT INTO my (page) // insert in sql 
     VALUES('$product')"); 
    $stmt->bind_param("sss", $product, $name, $show); 
    $stmt->execute(); 
+0

was verbindlich sind Sie? – Akintunde007

+0

das $ Produkt @Akin – janejoe

Antwort

2

in vorbereitete Anweisung übereinstimmen Sie müssen Platzhalter verwenden, wenn verbindlich. Ohne sie tun Sie nichts

Hier binden Sie drei Variablen. Sie müssen also drei Platzhalter für jede von ihnen haben, dann fügen Sie in der bind_param Funktion die Variablen hinzu.

Werfen Sie einen Blick auf diese this für weitere Informationen

$product = 'i9-7820aa'; 
$name = $_POST['nickname'];// you do not need to escape anything 
$show = $_POST['show']; 


    $stmt = $connect->prepare("INSERT INTO my (page) // insert in sql 
      VALUES(?,?,?)");//we add three placeholders 
     $stmt->bind_param("sss", $product, $name, $show);// s stands for string, i stands for int, 
     $stmt->execute(); // returns true/false 
+0

Ich habe den gleichen Fehler @Akin – janejoe

+0

@janejoe, wie viele Werte fügen Sie ein? –

+0

auch @janejoe Ich glaube nicht, dass Sie mysqli_real_escape_string verwenden müssen –

Verwandte Themen