Подскажите новичку. $query = " SELECT * FROM `Название таблицы` WHERE `Столбец` = 'Запрос' "; Как вместо 'Запрос' вставить значение из формы $_POST[...]?
$query = " SELECT * FROM `Название таблицы` WHERE `Столбец` = ".mysql_escape_string($_POST['хз_че_там_у_тебя'])." "; Так безопасно.
Подскажите как можно ввести данные сразу в несколько таблиц: ПРИМЕР: Код (Text): $query ="insert into $sudno values (sudnoid,'$name','$shtatid'); insert into $reys values (reysid,'$nomer');"; Спасибо за внимание и ващу помощь!
Да скажем есть поле Код (Text): <Textarea name=test cols="25" rows="25></textarea> Внего пишем запрос на заполнение нескольких таблиц Код (Text): insert into zurnal values (null,'1', '1','1','1','1','2007-08-20','2007-08-31'), (null,'2', '2','2','2','2','2007-03-15','2007-04-05'), (null,'3', '3','3','3','3','2007-09-27','2007-09-30'), (null,'4', '4','4','4','4','2007-06-20','2007-07-13'), (null,'5', '5','5','5','5','2007-09-30','2007-10-03'); insert into sudno values (null,'kalipso','1'), (null,'cooper','2'), (null,'admiral','3'), (null,'gabriel','4'), (null,'kasper','5'); insert into shtat values (null,'124'), (null,'135'), (null,'452'), (null,'421'), (null,'235'); insert into reys values (null,'123'), (null,'124'), (null,'125'), (null,'126'), (null,'127'); insert into zakaz values (null,'OOO "PALADA" ','Ivanov','88482285534','1'), (null,'OAO "LADA" ','Petrov','88482285535','2'), (null,'ZAO "ALDIS" ','Sidorov','88482285536','3'), (null,'OOO "PILOT" ','Smirnov','88482285537','4'), (null,'OOO "COOL" ','Kuliev','88482285538','5'); insert into gruz values (null,'bumaga','12345'), (null,'Zerno','14545'), (null,'Mazut','17845'), (null,'Benzin','19545'), (null,'Drova','17445'); Insert into kapitan values (null,'Ivan','Ivanov','Ivanovihc','1'), (null,'Petrov','Peter','Petrovich','2'), (null,'Sidorov','Semen','Semenovich','3'), (null,'Sergey','Smirnov','Ivanovihc','4'), (null,'Aleksey','Kuliev','Shahinovich','5'); Код (Text): mysql_connect($hostname,$username,$password) or die ("ERROR CONNECT DB"); //Проверяем есть ли базаданных с таким названием @mysql_select_db("$DB") or die ("Такой базыданных нет обратитесь к администратору"); //Вводим данные в таблицу базыданных $query ="$test"; //Записываем $result = MYSQL_QUERY($query); $line=mysql_query("$test");
почему? можно написать обёртку для БД которая будет парсить все инсерты и по одному скармливать mysql_query (как в phpMyAdmin) и потом долго себя убеждать что все запросы выполнились за 1 раз
Есть еще один странный но весьма действенный метод: Вызываешь по сотовому НЛО (UFO) и просишь их если разглядишь, чтоб те все пропарсили и пропатчили, а ты тем временем займись парой десятков неудачников! А потом возьми все с блюдечка! Это шутка такая была! Немного не в тему, но все таки один раз запрос, потом второй раз запрос, и только так! Документацию почитайте по MySQL, они только думают и строят планы по реализации механизма, который столь желанен! Во!
Я недавно писал функцию для разбора запросов. Комментарии не поддерживаются, а так, вроде, работает. PHP: <?php $query = "USE test; INSERT INTO `text` VALUES(';;\';;Text;'); SELECT * FROM `text` WHERE `str` LIKE '%;%';"; print_r(prepQuery($query)); function prepQuery($query) { $query = str_replace('%', '%%', $query); $start = 0; $stop = 0; for ($i = 0; $i < strlen($query); $i++) { if (!$start) { if ($query{$i} == '\'' && $query{($i - 1)} != '\\') { $start = $i; } } else { if ($query{$i} == '\'' && $query{($i - 1)} != '\\') { $stop = $i; } } if ($stop) { $str = substr($query, $start, $stop - $start + 1); $nstr = str_replace(';', '%s', $str); $query = str_replace($str, $nstr, $query); $i = $start + strlen($nstr); $start = 0; $stop = 0; } } $queries = explode(';', $query); foreach ($queries as $k => &$v) { $v = trim($v); if (empty($v)) { unset($queries[$k]); } } foreach ($queries as &$query) { $subq = array(); for ($i = 0; $i < substr_count($query, '%s'); $i++) { $subq[] = ';'; } $query = vsprintf($query, $subq); } return $queries; }