Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.09.2018, 14:15   #1
spoon100500
Форумчанин
 
Аватар для spoon100500
 
Регистрация: 14.10.2016
Сообщений: 406
По умолчанию Подготовить sql запрос

День добрый, подскажите как правильно подготовить sql запрос в моём коде
PHP код:
include"include/db_connect.php";
$orderlist $_POST['orderlist'];
parse_str($_POST['userdata'], $userdata);

$query_client "INSERT INTO `client` (`name_client`, `email_client`, `phone_client`, `other_client`) VALUES ('".$userdata['fio']."','".$userdata['mail']."','".$userdata['tel']."','".$userdata['text']."')";
mysqli_query($link$query_client);

$number mysqli_insert_id($link);
echo 
$number;

$string = [];
foreach (
$orderlist as $prod) {
$value = [];
 foreach (
$prod as $item) {
 
$value[] = "'" $item "'";}
 
array_unshift($value$number);
$string[] = '('.implode(', 'str_replace(',''.'$value)).')';}

$query "INSERT INTO `product` (`number`, `name`, `foto`, `raskroi`, `system`, `uprav`, `width`, `height`, `quantity`, `price`, `a`, `price_itog`) VALUES "implode(', '$string);
mysqli_query($link$query); 
Я правильно понимаю, что нужно прописать mysqli_prepare()?
Еду медленно, но верно!
spoon100500 вне форума Ответить с цитированием
Старый 02.09.2018, 18:14   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от spoon100500 Посмотреть сообщение
Я правильно понимаю, что нужно прописать mysqli_prepare()?
насколько я понимаю - Вам mysqli_prepare() вообще не нужно.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 02.09.2018, 18:21   #3
spoon100500
Форумчанин
 
Аватар для spoon100500
 
Регистрация: 14.10.2016
Сообщений: 406
По умолчанию

Что нужно?
Еду медленно, но верно!
spoon100500 вне форума Ответить с цитированием
Старый 02.09.2018, 19:11   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Весь смысл prepare в том, чтобы значения отдельно передавать соответствующим образом описанным в документации (позволяя ему экранировать и т.п.), а не тупо конкатенировать строки и ждать Бобби.



https://www.google.com/search?q=sql+injection

www.phptherightway.com/#databases / http://getjump.github.io/ru-php-the-...BD%D1%8B%D1%85
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 03.09.2018, 06:16   #5
spoon100500
Форумчанин
 
Аватар для spoon100500
 
Регистрация: 14.10.2016
Сообщений: 406
По умолчанию

Ну если prepare не подходит, тогда, что использовать? Блин, только не говорите, что PDO нужно?
Еду медленно, но верно!

Последний раз редактировалось spoon100500; 03.09.2018 в 06:20.
spoon100500 вне форума Ответить с цитированием
Старый 03.09.2018, 07:39   #6
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

prepare и использовать, только нормально.
А какая разница PDO или mysqli? Они похожи, только PDO для всех БД, а не только MySQL.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 03.09.2018, 08:00   #7
spoon100500
Форумчанин
 
Аватар для spoon100500
 
Регистрация: 14.10.2016
Сообщений: 406
По умолчанию

Ну PDO вроде как не нужно прописывать защиту, прочитал я.
Еду медленно, но верно!
spoon100500 вне форума Ответить с цитированием
Старый 03.09.2018, 08:45   #8
spoon100500
Форумчанин
 
Аватар для spoon100500
 
Регистрация: 14.10.2016
Сообщений: 406
По умолчанию

Т.е. меняю эту строку
PHP код:
$query_client "INSERT INTO `client` (`name_client`, `email_client`, `phone_client`, `other_client`) VALUES ('".$userdata['fio']."','".$userdata['mail']."','".$userdata['tel']."','".$userdata['text']."')"
на эту
PHP код:
$query_client mysqli_prepare ("INSERT INTO `client` (`name_client`, `email_client`, `phone_client`, `other_client`) VALUES ('?','?','?','?')";); 
Еду медленно, но верно!
spoon100500 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запрос в sql 2005 - SQL Server a.n.o.n.i.m SQL, базы данных 8 31.03.2016 17:01
подготовить итоговый отчёт dr03 Microsoft Office Access 60 16.06.2011 18:22
Запрос с CASE переделать в запрос с PIVOT (MS SQL Server 2005) Машуля SQL, базы данных 4 06.05.2010 21:09
Создание новых таблиц в MS SQL SERVERE через SQL запрос в Delphi S_Yevgeniy Помощь студентам 1 27.10.2009 06:26
SQL запрос на основе другого SQL запрса... Timoxa БД в Delphi 1 07.01.2007 18:15