powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Ковычки для формирования SQL запроса
3 сообщений из 3, страница 1 из 1
Ковычки для формирования SQL запроса
    #38993652
Dozent
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот кусочек кода

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
 foreach ($_POST as $param_name => $param_value) {
      if ($param_name!=='id')
      { 

        switch ($param_name) {
          case 'LOGIN_USER':
          case 'VDESCRIPTION':
          case 'VNAMEE':{
            $field_value ="'".addslashes(str_replace("'", "''", $param_value))."'"; 
          }
          break;
          case 'VPASSWORD':{
            $field_value = addslashes(str_replace("'", "''", $param_value)); 
            $field_value= "'".hash_password($field_value)."'";
          }
          break;
          case 'RROLE':{
            $field_value = intval($param_value); 
          }
          break;
         
          default:
          continue 2;//выходим из свича и другая итерация цикла
        }


        $arr_fields[] = addslashes(str_replace("'", "''", $param_name));
        $arr_values[] = $field_value;
      }
    }

    $arr_fields= implode(' , ', $arr_fields);
    $arr_values= implode(' , ', $arr_values);
    $query = "INSERT INTO users ($arr_fields) VALUES ($arr_values)";
   echo $query;
   /* $link=db_connect();
    $result = ibase_query($query);
     //  ibase_commit();
    ibase_close($link);*/
  }



запрос получается вот такой

Код: plsql
1.
INSERT INTO users (LOGIN_USER , VNAMEE , VPASSWORD , RROLE , VDESCRIPTION) VALUES (''adsf'' , ''adsf'' , ''392b7bc90b108cd187ab9f25021b5961'' , 1 , ''Преподаватель'')



Почему вот так вот получается?
(''adsf'' , ''adsf'' ,
...
Рейтинг: 0 / 0
Ковычки для формирования SQL запроса
    #38993664
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dozent, потому что ты добавляешь кавычки вокруг значения сначала здесь:
Код: php
1.
2.
3.
$field_value ="'".addslashes(str_replace("'", "''", $param_value))."'"; 
...
$field_value= "'".hash_password($field_value)."'";


и далее здесь:
Код: php
1.
$arr_values= implode(' , ', $arr_values);
...
Рейтинг: 0 / 0
Ковычки для формирования SQL запроса
    #38993674
Dozent
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если делать так:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
 $arr_fields = array();
    $arr_values = array();
    foreach ($_POST as $param_name => $param_value) {
      if ($param_name!=='id')
      { 

        switch ($param_name) {
          case 'LOGIN_USER':
          case 'VDESCRIPTION':
          case 'VNAMEE':{
            $field_value =addslashes(str_replace("'", "''", $param_value)); 
          }
          break;
          case 'VPASSWORD':{
            $field_value = addslashes(str_replace("'", "''", $param_value)); 
            $field_value= hash_password($field_value);
          }
          break;
          case 'RROLE':{
            $field_value = intval($param_value); 
          }
          break;
         
          default:
          continue 2;//выходим из свича и другая итерация цикла
        }


        $arr_fields[] = addslashes(str_replace("'", "''", $param_name));
        $arr_values[] = $field_value;
      }
    }

    $arr_fields= implode(' , ', $arr_fields);
    $arr_values= implode(' , ', $arr_values);
    $query = "INSERT INTO users ($arr_fields) VALUES ($arr_values)";
   echo $query;



то запрос получается такой

Код: plsql
1.
INSERT INTO users (LOGIN_USER , VNAMEE , VPASSWORD , RROLE , VDESCRIPTION) VALUES (qwe , йцу , 8250cd2031be77af4ced7637529e6e73 , 1 , Преподаватель)
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Ковычки для формирования SQL запроса
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]