bagus bujangga Ответов: 1

Mysql insert from declare variable error


Привет, я пытаюсь вставить данные в таблицу. некоторые поля, которые я хочу вставить, взяты из этой таблицы. поэтому я создаю временную переменную для определения данных, а затем вызываю переменную в запросе. когда я пытаюсь выполнить его из sqlyog это нормально но когда я пытаюсь выполнить его с помощью php я получаю сообщение об ошибке
Цитата:
Ошибка у вас есть ошибка в синтаксисе SQL; проверьте руководство, которое соответствует вашей версии сервера MariaDB для правильного синтаксиса для использования рядом с 'SELECT @lvl := level+1 from eslii_logicalframework where id_framework='5'; ' в строке 2


мой php код

$sq_insert="SELECT @kdfrm := CONCAT(kode_framework,'.".$nomor_urut."') from eslii_logicalframework where id_framework='".$lookup_id."';
							SELECT @lvl := level+1 from eslii_logicalframework where id_framework='".$lookup_id."';
							insert into eslii_logicalframework
							(
								kode_framework,
								no,
								level,
								id_jenis,
								logical_framework,
								indikator_framework,
								unitkey
							)values
							(
								@kdfrm,
								'".$nomor_urut."',
								@lvl,
								'".$data_post_select."',
								'".$data_post."',
								'".$data_post_ind."',
								'".$unitkey_login."'
							);";

	             
			    if (!$result = mysqli_query($conmysql,$sq_insert)) {
			        echo"<div class='alert alert-mini alert-danger margin-bottom-30'> ERROR  ".mysqli_error($conmysql)."</div>";
			    }


Что я уже пробовал:

я только пытаюсь выполнить php код

1 Ответов

Рейтинг:
0

Patrice T

Никогда не создавайте SQL-запрос путем объединения строк. Рано или поздно вы сделаете это с помощью пользовательских вводов, и это откроет дверь к уязвимости под названием "SQL-инъекция", она опасна для вашей базы данных и подвержена ошибкам.
Одна кавычка в имени - и ваша программа выйдет из строя. Если пользователь вводит имя, например "Брайан О'Коннер", может привести к сбою вашего приложения, это уязвимость SQL-инъекции, и сбой-это наименьшая из проблем, вредоносный пользовательский ввод, и он продвигается к командам SQL со всеми учетными данными.
SQL-инъекция - Википедия[^]
SQL-инъекция[^]
Атаки SQL-инъекций на примере[^]
PHP: SQL-инъекция - руководство пользователя[^]
Шпаргалка по предотвращению инъекций SQL - OWASP[^]
Как я могу объяснить SQL-инъекцию без технического жаргона? - Обмен Стеками Информационной Безопасности[^]