xbs
Новичок
динамическое создание подготовленного выражения
В связи с тем, что значения для подготовленного выражения задаются не массивом, а каждое по очереди в функции mysqli_stmt_bind_param($stmt,$types, $var1, $var2, ...), означает ли это, что невозможно создать запрос динамически, т.е. по каким-то условиям добавить в SQL-выражение дополнительные необходимые параметры?
Для примера:
хотелось бы вместо .... поставить $this->pswd при условии !empty($this->pswd), и в противном случае исключить эту переменную из запроса
правильно ли я понимаю, что обычные запросы куда более гибки для составления?
В связи с тем, что значения для подготовленного выражения задаются не массивом, а каждое по очереди в функции mysqli_stmt_bind_param($stmt,$types, $var1, $var2, ...), означает ли это, что невозможно создать запрос динамически, т.е. по каким-то условиям добавить в SQL-выражение дополнительные необходимые параметры?
Для примера:
PHP:
$dbfields = 'u_login=?';
$dbtypes = 's';
if (!empty($this->pswd)) {
$dbfields .= ", u_pswd=PASSWORD(?)";
$dbtypes .= 's';
}
$stmt = mysqli_prepare($this->db, 'UPDATE users SET '.$dbfields.' WHERE u_id=?');
$dbtypes .= 'd';
mysqli_stmt_bind_param($stmt, $dbtypes, $this->login, .... , $this->id);
mysqli_stmt_execute($stmt) or sqlError();
правильно ли я понимаю, что обычные запросы куда более гибки для составления?