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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.09.2011, 10:14   #1
NARKOM
Пользователь
 
Регистрация: 26.04.2010
Сообщений: 12
По умолчанию Mysql проблема добавления

Может я что то не так делаю? Через визуальный редактор пытаюсь добавить запись в БД поле text. Вот кусок кода


if (@$_POST['save'] ){
$text=$_POST['content1'];
$anot=($_POST['anot']);

$pole=$_POST['pole'];
$titul=$_POST['titul'];
if (!$text || !$pole || !$titul) {
echo ("Поле не заполнено");
}
else {
if ( !get_magic_quotes_gpc() ){
$text=stripslashes($text);
$anot=stripslashes($anot);
$pole=stripslashes($pole);
$titul=stripslashes($titul);
}
$kuda=array(); // определяем название таблицы по ИД

$kuda[10]="news";
$kuda[1]="first";
$kuda[6]="stat";
if ($kuda[$id]==1 || $kuda[$id]==6){

//пишем
mysql_query("INSERT INTO {$kuda[$id]} (title, nazv, text) VALUES ('{$titul}','{$pole}','{$text}')") or die (mysql_error());
echo " <script type=\"text/javascript\"> alert (\"Данные внесены\"); </script>";
}
if ($kuda[10]){
mysql_query("INSERT INTO {$kuda[10]} (title, nazv, anot, text) VALUES ('{$titul}','{$pole}','{$anot}','{$ text}')") or die (mysql_error());
echo " <script type=\"text/javascript\"> alert (\"Данные внесены\"); </script>";
}

else echo ("нет такого раздела");
}
}

Работает через раз. Если объем вносимых данных большой но вовсе ругается.
Пишет
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 'ом.

А в логах апача ругается на if ($kuda[$id]==1 || $kuda[$id]==6){ (тут ей id не нравится)
В чем может быть проблема?
NARKOM вне форума Ответить с цитированием
Старый 25.09.2011, 10:17   #2
Kotaries
Пользователь
 
Регистрация: 20.06.2011
Сообщений: 27
По умолчанию

по поводу if ($kuda[$id]==1 || $kuda[$id]==6){ (тут ей id не нравится) то лучше писать так
if (($kuda[$id]==1) || ($kuda[$id]==6)){ (тут id нравится) }
Kotaries вне форума Ответить с цитированием
Старый 25.09.2011, 10:19   #3
Kotaries
Пользователь
 
Регистрация: 20.06.2011
Сообщений: 27
По умолчанию

советую перейти на mysqlI там все это гораздо проще, надежнее и защищеннее от инжектов
работает оно типа такого:

$link=mysqli_connect('localhost',"$ baseroot","$passroot","$database");
$stmt = $link->prepare("UPDATE $usetable SET fseeks=?,floads=?,flast=? WHERE nname=?");
$stmt->bind_param("ssss", $fseeks,$floads,$flast,$nname);
$stmt->execute();
$stmt->close();
$link->close();
Kotaries вне форума Ответить с цитированием
Старый 25.09.2011, 10:23   #4
NARKOM
Пользователь
 
Регистрация: 26.04.2010
Сообщений: 12
По умолчанию

Но а что с мускулом то?
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 'ом.
','

Вроде уже все проверил и перепроверил и ни в какую ((((((
NARKOM вне форума Ответить с цитированием
Старый 25.09.2011, 10:24   #5
NARKOM
Пользователь
 
Регистрация: 26.04.2010
Сообщений: 12
По умолчанию

[QUOTE=Kotaries;882103]советую перейти на mysqlI

Я б может и с радостью. Но приказ был сидеть на мускуле.
NARKOM вне форума Ответить с цитированием
Старый 25.09.2011, 10:36   #6
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от NARKOM Посмотреть сообщение
А в логах апача ругается на if ($kuda[$id]==1 || $kuda[$id]==6){ (тут ей id не нравится)
В чем может быть проблема?
Поиск ошибок и отладка

Цитата:
Сообщение от NARKOM Посмотреть сообщение
Пишет
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 'ом.
Составление запросов MySQL
Andkorol вне форума Ответить с цитированием
Старый 25.09.2011, 10:42   #7
Kotaries
Пользователь
 
Регистрация: 20.06.2011
Сообщений: 27
По умолчанию

советую тогда сделать так

//пишем
$string="INSERT INTO {$kuda[$id]} (title, nazv, text) VALUES ('{$titul}','{$pole}','{$text}');";
if(!@mysql_query("$string")) { echo("$string - хреновый запрос");}
//не уверен что необходима @
и смотри уже что у тебя в твоем хреновом запросе когда пытаешься его выполнить через putty
и да, мне кажется не стоит забывать в конце запроса мускулу ставить ;

Последний раз редактировалось Kotaries; 25.09.2011 в 10:45.
Kotaries вне форума Ответить с цитированием
Старый 25.09.2011, 10:57   #8
VadikV
Форумчанин
 
Аватар для VadikV
 
Регистрация: 08.01.2011
Сообщений: 226
По умолчанию

у тебя строки массива $kuda проинициализирован текстом:
Код:
$kuda[10]="news";
$kuda[1]="first";
$kuda[6]="stat";
а ты пытаешься сравнить с числами:
Код:
if ($kuda[$id]==1 || $kuda[$id]==6)
icq 223-630-454
e-mail vysotskiy@list.ru
сайт http://www.big-library.net/
VadikV вне форума Ответить с цитированием
Старый 25.09.2011, 11:10   #9
NARKOM
Пользователь
 
Регистрация: 26.04.2010
Сообщений: 12
По умолчанию

Цитата:
Сообщение от VadikV Посмотреть сообщение
у тебя строки массива $kuda проинициализирован текстом:
Код:
$kuda[10]="news";
$kuda[1]="first";
$kuda[6]="stat";
а ты пытаешься сравнить с числами:
Код:
if ($kuda[$id]==1 || $kuda[$id]==6)


У меня на мускул ругается а не на это
NARKOM вне форума Ответить с цитированием
Старый 25.09.2011, 11:14   #10
Kotaries
Пользователь
 
Регистрация: 20.06.2011
Сообщений: 27
По умолчанию

я тебе сказал что сделать
посмотри сам запрос который ты отправляешь
Kotaries вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с регистрацией на сайте при добавления фото!!! mg1987 PHP 2 13.03.2011 02:12
Проблема добавления >52 полей в adotable AK BULLETS БД в Delphi 4 01.04.2010 13:58
добавления в базу Mysql по очереди Shyt SQL, базы данных 4 26.11.2009 08:58
Проблема добавления в мемо из IdHTTP Kukkk Работа с сетью в Delphi 6 11.11.2007 13:48