Подготовленные заявления в MySQLi - PullRequest
0 голосов
/ 17 марта 2012

Я делаю SQL-запросы в подготовленных выражениях (MySQLi)

Это запрос

$register = $friend_zone->prepare("INSERT INTO users (name, username, password, email, security_answer, date, user_level, security_question) VALUES(?, ?, ?, ?, ?, ?, ?, ?)");
$register->bind_param($name, $username, $password, $email, $security_answer, $date, $user_level, $security_question);

$register->execute();

Я получаю предупреждение

Warning: mysqli_stmt::bind_param(): Number of elements in type definition string doesn't match number of bind variables in /var/www/includes/functions.php on line 152 Notice: Undefined variable: result in /var/www/includes/functions.php on line 159 

Может кто-нибудь помочь

Ответы [ 2 ]

1 голос
/ 17 марта 2012

Вы используете функцию bind_param () неправильно. Первый параметр - это строка, содержащая типы данных. Например:

$register->bind_param('ssssssis', $name, $username, $password, $email, $security_answer, $date, $user_level, $security_question);

Каждая буква соответствует своей переменной. s для строк и i для целых чисел. Есть и другие доступные.

0 голосов
/ 17 марта 2012

Попробуйте:

$register = $friend_zone->prepare("INSERT INTO users (name, username, password, email, security_answer, date, user_level, security_question) VALUES(?, ?, ?, ?, ?, ?, ?, ?)");
$register->execute( array($name, $username, $password, $email, $security_answer, $date, $user_level, $security_question) );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...