Mysql
 sql >> база данни >  >> RDS >> Mysql

Не са предоставени данни за параметрите в подготвеното изявление

Свързали сте само четири аргумента с контролния низ "sssd", но имате много параметри. Когато свързвате променливи с mysqli, имате нужда от един знак за всеки параметър, например:

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

(Предполагам, че старши и студент са цели числа и се нуждаят от кода "d".)

Не е нужно да третирате нито една от вашите променливи с mysqli_real_escape_string() - това е смисълът на използването на параметри. Ако направите и екраниране, ще получите буквални обратна наклонена черта в данните си в базата данни.

И никога не е необходимо да използвате htmlspecialchars() във всеки случай - бихте го използвали при извеждане в HTML, а не при вмъкване в базата данни. Ще получите буквални последователности като & във вашите данни в базата данни.

Повторете следващата си грешка:

Това е причинено от следното:

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

Тази функция очаква вторият аргумент да бъде низ, нова SQL заявка. Но вече сте подготвили тази заявка, така че имате нужда от следното:

$result = mysqli_stmt_execute($stmt);



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL:Голям VARCHAR срещу TEXT?

  2. Излезте от MySQL, без да се рестартира на El Capitan

  3. ScaleGrid DBaaS разширява MySQL хостинг услугите чрез AWS Cloud

  4. По-добре ли е да върнете една голяма заявка или няколко по-малки?

  5. mysql:select max(score) не връща съответните данни за ред