Здесь намного больше ошибок, чем не получить правильное сцепление.
Прежде всего, если вы просто пытаетесь поместить переменные в строку в PHP, рассмотреть вопрос об использовании двойных кавычек и ввод переменных непосредственно в строку:
$sql = "UPDATE `zzz_users` SET `password` = $encrypted WHERE `username` = $email";
Там нет необходимости для всех запуска и остановка строк в этом случае.
Однако, что вы здесь делаете, чрезвычайно опасно из-за SQL Injection attacks. Вы должны ОПРЕДЕЛЕННО НЕ ставить переменные непосредственно в ваши команды SQL.
Лучший способ сделать это - использовать библиотеку, которая знает, как принимать строки форматирования и создавать безопасные SQL
для вас. Например, что-то вроде MeerkoDB позволит вам написать это SQL
заявление так:
DB::query("UPDATE `zzz_users` SET `password`=%s WHERE `username`=%s", $encrypted, $email);
Это действительно безопасен, так как это гарантирует, что SQL правильно спасся, предотвращения атак SQL инъекций. Конечно, вы можете свернуть свое собственное побег, но почти всегда лучше использовать хорошо зарекомендовавшуюся библиотеку (есть много бесплатных/открытых исходных и коммерческих/проприетарных предложений).
Не можете видеть, где вы используете concat? – Mihai