sql >> Database teknologi >  >> RDS >> Mysql

Ingen data leveret for parametre i udarbejdet erklæring

Du har kun bundet fire argumenter af kontrolstrengen "sssd", men du har mange parametre. Når du binder variabler med mysqli, skal du bruge et tegn for hver parameter, for eksempel:

mysqli_stmt_bind_param($stmt, "sssdsssssssssdd", $firstname, $surname, $address, 
    $gender, $city, $province, $postalcode, $phone, $secondphone, $email, 
    $organization, $inriding, $ethnicity, $senior, $student);

(Jeg antager, at senior og elev er heltal og har brug for "d"-koden.)

Du behøver ikke at behandle nogen af ​​dine variabler med mysqli_real_escape_string() -- det er meningen med at bruge parametre. Hvis du også escaper, får du bogstavelige skråstreg i dine data i databasen.

Og du behøver aldrig at bruge htmlspecialchars() under alle omstændigheder - du ville bruge det, når du udskriver til HTML, ikke når du indsætter i databasen. Du vil få bogstavelige sekvenser som & i dine data i databasen.

Om din næste fejl:

Dette er forårsaget af følgende:

$result = mysqli_query($mysqli,$stmt);

Den funktion forventer, at det andet argument er en streng, en ny SQL-forespørgsel. Men du har allerede forberedt den forespørgsel, så du har brug for følgende:

$result = mysqli_stmt_execute($stmt);



  1. Installation af WordPress ved hjælp af WP-CLI

  2. PostgreSql 'PDOException' med beskeden 'kunne ikke finde driver'

  3. Er der nogen måde at kontrollere ydeevnen af ​​mysql indeksering

  4. virtualenv, der kan finde flyttede biblioteker (som mysqlclient lib for MySQLdb)