|
|
|
|
|
для: cheops
(16.10.2005 в 15:26)
| | Большое спасибо cheops!
Наконец-то моя проблема решена.
В БД записывается текст вместо знаков HTML.
Правда в последнем сообщении, в коде я допустил ошибку, добавил лишнюю скобку.
if(!mysql_query(stripslashes($query).")"))
|
Вот исправленный код который работает, если кому еще понадобится:
<?php
// Insert data
if(isset($_POST['sql_string']))
$sql_string=$_POST['sql_string'];
else
$sql_string="";
if(isset($_POST['submit'])){
$sql_string_formatted = preg_split("|;[\s]*\r\n|", $sql_string);
echo "<pre>";
print_r($sql_string_formatted);
echo "</pre>";
foreach($sql_string_formatted as $query)
{
if(!mysql_query(stripslashes($query)))
exit("Error - ".mysql_error());
}
// show confirmation
echo 'Your informations were successfully added!';
}
?>
|
| |
|
|
|
|
|
|
|
для: codexomega
(15.10.2005 в 18:45)
| | Пропустите запрос через stripslashes()
<?php
if(isset($_POST['sql_string']))
$sql_string=$_POST['sql_string'];
else
$sql_string="";
if(isset($_POST['submit'])){
$sql_string_formatted = preg_split("|;[\s]*\r\n|", $sql_string);
echo "<pre>";
print_r($sql_string_formatted);
echo "</pre>";
foreach($sql_string_formatted as $query)
{
if(!mysql_query(stripslashes($query).")"))
exit("Error - ".mysql_error());
}
// show confirmation
echo 'Your informations were successfully added!';
}
?>
|
| |
|
|
|
|
|
|
|
для: codexomega
(12.10.2005 в 22:48)
| | Создал форму для SQL запросов, содержащую текстовое поле и кнопку Submit.
Но теперь проблема с регулярным выражением.
Вот запрос:
INSERT INTO zagovor_category VALUES ('', 'Дела житейские');
INSERT INTO zagovor_category VALUES ('', 'Здоровье');
INSERT INTO zagovor_category VALUES ('', 'Защита');
INSERT INTO zagovor_category VALUES ('', 'Удача');
INSERT INTO zagovor_category VALUES ('', 'Хозяйство');
INSERT INTO zagovor_category VALUES ('', 'Любовь');
INSERT INTO zagovor_category VALUES ('', 'Деньги и богатство');
INSERT INTO zagovor_category VALUES ('', 'Сглаз и порча');
INSERT INTO zagovor_category VALUES ('', 'Все');
|
Это код PHP:
if(isset($_POST['sql_string']))
$sql_string=$_POST['sql_string'];
else
$sql_string="";
if(isset($_POST['submit'])){
$sql_string_formatted = preg_split("|;[\s]*\r\n|", $sql_string);
echo "<pre>";
print_r($sql_string_formatted);
echo "</pre>";
foreach($sql_string_formatted as $query)
{
if(!mysql_query($query.")"))
exit("Error - ".mysql_error());
}
// show confirmation
echo 'Your informations were successfully added!';
}
|
А это результат:
Array
(
[0] => INSERT INTO zagovor_category VALUES (\'\', \'Дела житейские\')
[1] => INSERT INTO zagovor_category VALUES (\'\', \'Здоровье\')
[2] => INSERT INTO zagovor_category VALUES (\'\', \'Защита\')
[3] => INSERT INTO zagovor_category VALUES (\'\', \'Удача\')
[4] => INSERT INTO zagovor_category VALUES (\'\', \'Хозяйство\')
[5] => INSERT INTO zagovor_category VALUES (\'\', \'Любовь\')
[6] => INSERT INTO zagovor_category VALUES (\'\', \'Деньги и богатство\')
[7] => INSERT INTO zagovor_category VALUES (\'\', \'Сглаз и порча\')
[8] => INSERT INTO zagovor_category VALUES (\'\', \'Все\');
)
Error - You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '\'\', \'Дела житейские\'))' at line 1
|
Запрос из файла вроде работал, а строка не хочет.
Что здесь не так?
Спасибо. | |
|
|
|
|
|
|
|
для: codexomega
(09.10.2005 в 07:59)
| | Вообщем так.
Поставлю я лучше форму на хост и буду через нее записи вставлять в таблицу.
Ведь таким образом данные не проходят обработку в phpMyAdmin.
Так будет проще.
Надоело возится с этими sql файлами. | |
|
|
|
|
|
|
|
для: cheops
(11.10.2005 в 23:41)
| | Юникод, потому что в ANSI теряется кодировка букв и получаются знаки вопроса, которые ничем нельзя расшивровать. | |
|
|
|
|
|
|
|
для: codexomega
(11.10.2005 в 16:41)
| | Вы при сохранении данных в блокноте в последнем выпадающем списке что выбираете ANSI или Юникод? | |
|
|
|
|
|
|
|
для: cheops
(11.10.2005 в 15:05)
| | 4.0.25
Но дело наверное не в версии.
У меня тоже ни фига не идет с MySQL 4.1 на английском OS
Я попробовал редактировать sql файл в блокноте. При сохранении, блокнот выдает что в файле содержатся элементы unicode и если я не хочу потерять формат, то должен сохранить как unicode.
Сохраняю.
Запускаю скрипт.
Теперь данные в формате unicode, но синтаксическая ошибка:
(
Array
(
[0] => INSERT INTO religion_articles VALUES ('', 'Статья первая','Текст статьи', NULL);
)
Error - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INSERT INTO religion_articles VALUES ('', 'Статья первая','Тек' at line 1
|
Может там какие-то дополнительные спрятанные кодировки прибавляются, которых в тексте не видно? | |
|
|
|
|
|
|
|
для: codexomega
(11.10.2005 в 09:02)
| | А на хосте версия MySQL какая? | |
|
|
|
|
|
|
|
для: codexomega
(10.10.2005 в 22:59)
| | На хосте проверил. Но теперь вместо htmlосвких значков знаки вопроса.
Дело в том что файл .sql никак не принимается той системой и не расшивровывается, в коде ASCII не хватает значений.
Вообщем я решил не крутить мозги и воспользоваться взамен функцией html_entity_decode().
Проверю что получится. | |
|
|
|
|
|
|
|
для: codexomega
(10.10.2005 в 19:52)
| | Поламов немного голову, я поставил в код вывод ошибки в случае неправильного запроса. Не знаю, почему раньше этого не сделал.
Короче первое что я сделал, так это удалил кавычки из запроса, в которые было заключено название таблицы.
Все пошло как надо. Ура!
Странно, но я такое уже делал вчера, но у меня оно не заработало.
Наверное тут еще и код был виноват.
Теперь он у меня такой:
foreach($quer as $query)
{
if(!mysql_query($query))
exit("Error - ".mysql_error());
}
|
А это мой запрос в файле .sql:
INSERT INTO religion_articles VALUES ('', 'ABC','123', NULL);
INSERT INTO religion_articles VALUES ('', 'XY23','456', NULL);
|
Большое спасибо за помощь.
Осталось проверить на хосте, будет ли выполнятся все правильно и вместо значков html, увижу ли я в моей БД буквы. | |
|
|
|
|