Вот как я связываю свои параметры:
$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)
Проблема в том, что у меня есть массив параметров; Я должен связать их один за другим. Я не знаю числа параметров
Немного оффтопик, но я считаю это достаточно важным.
Очень недавний комментарий пользователя на странице руководства для mysql_stmt_bind_param содержит точный ответ на этот самый вопрос.
Вы видите, этот сайт, хотя поощряют лень, не всегда отвечают на ваш вопрос лучше, чем старые добрые Google и ручные.
Ваш подход не работает, потому что правильный способ использования mysqli_stmt_bind_param заключается в следующем:
mysql_stmt_bind_param("ss",$Username,$Email)
ref: http://php.net/manual/en/mysqli-stmt.bind-param.php
знать количество параметров делает массив count ().
Обязательность привязки MySQLi действительно не подходит для переменных чисел параметров.
Я настоятельно рекомендую переключиться на PDO
$stmt = $pdo->prepare('select * from users where name=? and email=?'); $stmt->execute($numericArrayOfParameters);