Форум 3DNews
Вернуться   Форум 3DNews > Программирование > Web-программирование

Ответ Создать новую тему
Опции темы Опции просмотра
Непрочитано 22.07.2004, 19:00   [включить плавающее окно]   #1
AlexGTS
Продвинутый
Автор темы
 
Регистрация: 22.05.2004
Адрес: Нижний новгород
Exclamation PHP: mysql_query

фишка такая: есть острая необходимость отправить серверу БД несколько команд посредством mysql_query() (PHP).
т.е. : mysql_query("comand1"???"comand2");
как при этом должны выглядеть запросы и как их надо разделять?
разделение запятыми, переносами не помогают! HELP plz...
AlexGTS вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 22.07.2004, 19:10   [включить плавающее окно]   #2
Marvin
Мужской Team 3DNews
 
Аватар для Marvin
 
Регистрация: 09.09.2003
Адрес: Казань
AlexGTS
а в мануале посмотреть лень?
__________________
[3DNews Team]
Marvin вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 22.07.2004, 19:17   [включить плавающее окно]   #3
AlexGTS
Продвинутый
Автор темы
 
Регистрация: 22.05.2004
Адрес: Нижний новгород
Мануал по РНР имеешь в виду?
Вряд ли в мануале БД буд описание команды запроса для РНР
AlexGTS вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 22.07.2004, 21:14   [включить плавающее окно]   #4
pl_Vah
Мужской Опытный
 
Аватар для pl_Vah
 
Регистрация: 25.05.2004
Адрес: Moscow
копай в мануале по SQL - SQL INJECTION правда не всегда это мона....
а не дано просто:
mysql_query($q1);
mysql_query($q2);
mysql_query($q3);
mysql_query($q4);

а??
pl_Vah вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 23.07.2004, 12:12   [включить плавающее окно]   #5
Johnnie Walker
Опытный
 
Регистрация: 28.04.2004
mysql_query("comand1; comand2");
Johnnie Walker вне форума  
Ответить с цитированием
Непрочитано 23.07.2004, 12:31   [включить плавающее окно]   #6
AlexGTS
Продвинутый
Автор темы
 
Регистрация: 22.05.2004
Адрес: Нижний новгород
pl_Vah
Цитата
mysql_query($q1);
mysql_query($q2);
- надо одним musql_query()
---
Johnnie Walker так не работает!
---
UNION тоже вызывает ошибку ((
AlexGTS вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 23.07.2004, 15:17   [включить плавающее окно]   #7
ZomBik
Guest
 
Функция mysql_query может обработать только один запрос к БД за раз, так как она оперирует затем с дескриптором результата, соответственно, если бы запроса было два, то первый бы просто потерялся. Если тебе нужно передать несколько запросов за раз, напиши wrapper такого типа:

PHP код:
function my_mysql_query($q_array)
{
  if(!
is_array($q_array) return false;

  foreach(
$q_array as $query) {
      
$result mysql_query($query);
      
// все что надо сделать после этого
  
}

Насчет manual'а: дока по MySQL тут не при чем, такие вещи желательно смотреть в мануале по PHP (c www.php.net можно скачать chm-версию с удобным индексом). Желаю удачи!
 
Ответить с цитированием
Непрочитано 23.07.2004, 21:34   [включить плавающее окно]   #8
pl_Vah
Мужской Опытный
 
Аватар для pl_Vah
 
Регистрация: 25.05.2004
Адрес: Moscow
ZomBik
ну SQL injection врятли к пхп относяца.... =)
pl_Vah вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 23.07.2004, 23:01   [включить плавающее окно]   #9
Johnnie Walker
Опытный
 
Регистрация: 28.04.2004
а почему надо одним вызовом?
Johnnie Walker вне форума  
Ответить с цитированием
Непрочитано 24.07.2004, 15:11   [включить плавающее окно]   #10
AlexGTS
Продвинутый
Автор темы
 
Регистрация: 22.05.2004
Адрес: Нижний новгород
Цитата
ZomBik
ну SQL injection врятли к пхп относяца.... =)
Цитата
а почему надо одним вызовом?
Еще вопросы есть?
Короче, оказалось UNION - это тока для SELECT
AlexGTS вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 24.07.2004, 20:08   [включить плавающее окно]   #11
pl_Vah
Мужской Опытный
 
Аватар для pl_Vah
 
Регистрация: 25.05.2004
Адрес: Moscow
AlexGTS
ну естесенно тока для СЕЛЕКТ.... =)) но тем не менее.... =))
pl_Vah вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 26.07.2004, 13:50   [включить плавающее окно]   #12
AlexGTS
Продвинутый
Автор темы
 
Регистрация: 22.05.2004
Адрес: Нижний новгород
Есть такая подлянка еще: набираешь кавычки - а в скрипт передается со слешем. Это для большинства спец0символов. Есть ли какое-нить противоедие? (Кроме конфига РHP)
AlexGTS вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 26.07.2004, 13:55   [включить плавающее окно]   #13
Marvin
Мужской Team 3DNews
 
Аватар для Marvin
 
Регистрация: 09.09.2003
Адрес: Казань
PHP код:
addslashes 
случайно не ставил?
поставь тогда
PHP код:
stripslashes 

Marvin добавил :

по типу
PHP код:
<?php
$str 
"Is your name O\'reilly?";

// Outputs: Is your name O'reilly?
echo stripslashes($str);
?>
__________________
[3DNews Team]
Marvin вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 26.07.2004, 16:00   [включить плавающее окно]   #14
AlexGTS
Продвинутый
Автор темы
 
Регистрация: 22.05.2004
Адрес: Нижний новгород
...
Когда в адресной строке набираешь ggg.php?g=' - скрипт получает $g=\\'
(
AlexGTS вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 26.07.2004, 16:39   [включить плавающее окно]   #15
Marvin
Мужской Team 3DNews
 
Аватар для Marvin
 
Регистрация: 09.09.2003
Адрес: Казань
AlexGTS
ну так поставь
PHP код:
$g stripslashes($g); 
__________________
[3DNews Team]
Marvin вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 26.07.2004, 17:50   [включить плавающее окно]   #16
AlexGTS
Продвинутый
Автор темы
 
Регистрация: 22.05.2004
Адрес: Нижний новгород
забей, нужно было уже на вход давать правильную переменную, stripslashes убивает слеши, даже те, которые нужны!
AlexGTS вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 27.07.2004, 10:52   [включить плавающее окно]   #17
ZomBik
Guest
 
Цитата (AlexGTS) »
забей, нужно было уже на вход давать правильную переменную, stripslashes убивает слеши, даже те, которые нужны!
Чтобы не создавать такую ситуацию, необходимо контролировать переменные. addslashes экранирует не только специсмволы, но и сам символ обратного слэша. Соответственно stripslashes, встретив два обратных слэша подряд, убивает только первый, логично сочтя его экранирующим символом. Так что связка addslashes/stripslashes это именно то, что нужно в случае работы с БД. В случае же с передачей пользовательских данных в url, лучше использовать htmlspecialchars или htmlentities, возможно в связке с urlencode.
 
Ответить с цитированием
Непрочитано 27.07.2004, 11:12   [включить плавающее окно]   #18
Johnnie Walker
Опытный
 
Регистрация: 28.04.2004
ZomBik кроме этого надо контролировать состояние параметра magic_quotes_gpc в php.ini
Johnnie Walker вне форума  
Ответить с цитированием
Непрочитано 27.07.2004, 11:33   [включить плавающее окно]   #19
Marvin
Мужской Team 3DNews
 
Аватар для Marvin
 
Регистрация: 09.09.2003
Адрес: Казань
Johnnie Walker
само собой
а положение этого параметра можно проверить функцией
get_magic_quotes_gpc , которая возвратит 0 для состояния off и 1 - для on
__________________
[3DNews Team]
Marvin вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 27.07.2004, 11:35   [включить плавающее окно]   #20
ZomBik
Guest
 
Цитата
ZomBik кроме этого надо контролировать состояние параметра magic_quotes_gpc в php.ini
Разумеется, но ИМХО magic quotes лучше отключать, если требуется четкий котроль за передаваемыми пользователем данными. Хотя это вопрос спорный и скорее зависит от предпочтений конкретного программиста.
 
Ответить с цитированием
Ответ Создать новую тему

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 21:39. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 2000-2017 3DNews. All Rights Reserved.
Администрация 3DNews требует соблюдения на форуме правил и законов РФ
Серверы размещены в Hostkey