Как связать параметр несколько раз с MySQLI? - PullRequest
5 голосов
/ 02 ноября 2011

Вот как я связываю свои параметры:

$Con = mysqli_connect(...);
$Statement = mysqli_stmt_init($Con);

mysqli_stmt_prepare($Statement,"select * from users where name=? and email=?");
mysqli_stmt_bind_param("s",$Username);
mysqli_stmt_bind_param("s",$Email); <-- it fails here

Но он отлично работает в другом случае, когда я заменяю 2 вызова mysqli_stmt_bind_param на:

mysql_stmt_bind_param("ss",$Username,$Email)

Проблема в том, что у меня есть массив параметров; Я должен связать их один за другим, потому что я не знаю количество параметров

Ответы [ 3 ]

5 голосов
/ 02 ноября 2011

Ваш подход не работает, потому что правильный способ использовать mysqli_stmt_bind_param:) массив.

4 голосов
/ 02 ноября 2011

Привязка операторов MySQLi действительно не подходит для переменного числа параметров.

Я настоятельно рекомендую перейти на PDO

$stmt = $pdo->prepare('select * from users where name=? and email=?');
$stmt->execute($numericArrayOfParameters);
0 голосов
/ 02 ноября 2011

Немного оффтоп, но я нахожу это достаточно важным.

Очень недавний комментарий пользователя на странице руководства для mysql_stmt_bind_param содержит точный ответ на этот самый вопрос.

Видите ли, этот сайт, хотя и поощряет лень, не всегда отвечает на ваш вопрос лучше, чем старый добрый гугл и руководство.

...