Только переменные должны передаваться по ссылке по ошибке [duplicate]

Я только что прошел ту же проблему и нашел хорошее решение в руководствах PHP.

Я изменил всю свою кодировку файла на UTF8, а затем по умолчанию на мое соединение. Это решило все проблемы.

if (!$mysqli->set_charset("utf8")) {
    printf("Error loading character set utf8: %s\n", $mysqli->error);
} else {
   printf("Current character set: %s\n", $mysqli->character_set_name());
}

Просмотреть источник

1
задан michaelb958 27 May 2013 в 02:18
поделиться

3 ответа

Ваш второй параметр 'strtoupper ($ a_user [$ db_translation [' login ']])' должен быть ссылкой на переменную.

doc: Ссылка на bindparam

'mixed & amp; $ variable' в документе сообщает, что он должен быть ссылкой (это '& amp;')

, вы можете создать переменную и поместить результат 'strtoupper ($ a_user [$ db_translation [' login ']])' в него. Например:

$foo = strtoupper($a_user[$db_translation['login']]);
$res->bindParam(':acc', $foo, PDO::PARAM_STR);

Надеемся на эту помощь

2
ответ дан CtrlX 26 August 2018 в 02:16
поделиться

use bindValue () потому что bindParam () второй arg является ссылкой, например

$res->bindValue(':acc', strtoupper($a_user[$db_translation['login']]));

, если вы хотите использовать bindParam, тогда вам нужно сохранить ваше утверждение в одну переменную и передать эту переменную в качестве аргумента. например.

$test = strtoupper($a_user[$db_translation['login']];
$res->bindParam(':acc', $test), PDO::PARAM_STR);
2
ответ дан Juned Ansari 26 August 2018 в 02:16
поделиться

Использование:

$param = strtoupper($a_user[$db_translation['login']]);
$res->bindParam(':acc', $param, PDO::PARAM_STR);
0
ответ дан Martin 26 August 2018 в 02:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: