在使用php和mysql编写预备语句时遇到了问题。由于某种原因,我的变量不正确。
 注意:-$ mysqli = $ conn

$stmt = $mysqli->prepare("INSERT INTO `inschrijving` (`id`, `bezoeker_naam`, `bezoeker_voornaam`, `bezoeker_email`, `bezoeker_straat`, `bezoeker_huisnummer`, `bezoeker_postnummer`, `bezoeker_plaats`) VALUES (NULL, '{$mysqli->real_escape_string('?')}', '{$mysqli->real_escape_string('?')}', '{$mysqli->real_escape_string('?')}', '{$mysqli->real_escape_string('?')}', '{$mysqli->real_escape_string('?')}', '{$mysqli->real_escape_string('?')}', '{$mysqli->real_escape_string('?')}');");}

                 $stmt->bind_param("sssssss", $naam, $voornaam, $email, $straat, $huisnummer, $postcode, $plaats);

                 $naam = $_POST['naam'];
                 $voornaam = $_POST['voornaam'];
                 $email = $_POST['email'];
                 $straat = $_POST['straat'];
                 $huisnummer = $_POST['nummer'];
                 $postcode = $_POST['postcode'];
                 $plaats = $_POST['plaats'];

                 $stmt->execute();


我得到的错误是这样的:


  mysqli_stmt :: bind_param():变量数与
  准备好的语句中的参数


我是新来的准备好的陈述者,我需要有人指出我的错。它确实可以帮助我更多地了解准备好的语句。 :)

最佳答案

使用准备好的语句时,您不应逃避绑定变量:

$stmt = $mysqli->prepare("INSERT INTO `inschrijving` (`id`, `bezoeker_naam`, `bezoeker_voornaam`, `bezoeker_email`, `bezoeker_straat`, `bezoeker_huisnummer`, `bezoeker_postnummer`, `bezoeker_plaats`) VALUES (NULL, ?, ?, ?, ?, ?, ?, ?)");

10-06 04:32