Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
форма для выполнения запросов к бд (ПыхтачоК) 31/10/2011 - 12:44:34



From: ПыхтачоК - 31/10/2011 - 12:44:34
Subject:форма для выполнения запросов к бд
-----------------
нужен скрипт для выполнения быстрых запросов к бд. казалось бы, как 2 пальца об асфальт, а нет. форма из текстового поля и кнопки. все работает, но вот с инсертом проблемы. с апдейтом, предполагаю, тоже. Учитался про иньекции, слэши и экранирование, но ни к чему толковому не пришел: операции с базой проходят, селекты тоже, а инсерты ни в какую. Наброски кода, собственно, ниже.
З.Ы. закомменченная строка входит в базу как по маслу - т.е. если запрос я формирую в коде - гуд, беру из textarea - фиг. Наверняка, решение элементарно, но меня покусал слоупок))
<?php
require "tpl/start.php";
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Запрос к БД</title>
</head>
<body>

<h3>Запрос к БД</h3>
<form name="form1" method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>">
<p>
<textarea name="textarea1" cols="40" rows="10"></textarea>
</p>
<p>
<input type="submit" value="Выполнить">
    <input type="reset" value="Очистить">
</p>
</form>
</body>
</html>

<?php

include 'tpl/config.inc';

// ******
// Config
// ******

$hostname = $db_host;
$user = $db_user;
$pass = $db_pass;
$db = $db_name;

// ************
// Write header
// ************

echo"<html>\n";
echo"<head>\n";
echo"<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n";
echo"<title>Запрос к БД</title>\n";
echo"</head>\n";
echo"<body>\n";

// echo"<p>Запрос к БД:</p>\n";
// echo"<p>".(!empty($_POST['textarea1'])?$_POST['textarea1']:'Ошибка: пустой запрос')."</p>\n";
echo"<hr size=\"1\">\n";


// **********
// Connect to DB
// **********

echo "Подключение к БД: ";
$link = mysql_connect($hostname, $user, $pass);
if (!$link) {
die('Не удалось подключить к базе данных: ' . mysql_error());
echo"Не удалось подключить к базе данных<BR>\n";}
else {
echo"Успешно<BR>\n";
}

mysql_select_db($db, $link) or die('Не удалось выбрать БД: ' . mysql_error());
mysql_query('set names utf8');


// ******************
// Exec query section
// ******************
// как дело доходит до insert, скрипт говорит: пнх
$query = (!empty($_POST['textarea1'])?$_POST['textarea1']:'');
// $query = addslashes($query);
// а запрос ниже выполняется на ура
// $query = "INSERT INTO `ws_pages` (`index`, `title`, `h1`, `short`, `text`, `keywords`, `description`, `show`, `count`, `date`, `sort`, `main`, `rewrite`, `comment`, `old_url`, `temp`, `fields`, `fieldsru`, `addfields`, `menuid`, `parrent`, `lang`, `type`, `model`, `maxx`, `maxy`, `g_type`, `titleru`, `h1ru`, `shortru`, `textru`, `keywordsru`, `descriptionru`) VALUES (99, '', 'XXXXXXXX', '', '', '', '', 1, 0, '0000-00-00', 1, 0, '', 0, '', '', '', '', 0, 0, 0, 'ru', 2, 0, 100, 100, 1, '', 'XXXXXXXXXXX', '', '', '', '')";
echo $query."<br>\n";
$q = explode(";", $query);
foreach ($q as $v) {
echo "Выполнен запрос: " . $v . "<br>\n";
$result = mysql_query($v) or die(mysql_error());

while ($row_cat=mysql_fetch_array($result)) {
if(is_array($row_cat)) {
print_r($row_cat)."<br>\n";
}
else {
echo "Результат запроса: " . $row_cat . "<br>\n";
}
}
}

// **********
// Disconnect from DB
// **********

mysql_close($link);
echo"Отсоединение от БД\n";


echo"</body>\n";
echo"</html>";
?>
<?php
require "tpl/end.php";
?>


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
40684



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |