Strict Standards: Resource ID#33 used as offset, casting to integer (33) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#35 used as offset, casting to integer (35) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#36 used as offset, casting to integer (36) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401
ТвойWeb :: Версия для печати :: Добавление данных в MySQL
ТвойWeb » WebMaster класс » PHP/Perl » Добавление данных в MySQL

Страниц (3): [1] 2 3 »
 

1. chiv - 27 Апреля, 2005 - 09:49:56 - перейти к сообщению
Пытаюсь со своей странички добавить данные в таблицу...
CODE:
/* Подключаемся к базе */
if (!mysql_connect($server, $user, $password))
{
echo "<html><head><title>ОШИБКА</title></head>";
echo "<body><h1>Ошибка подключения к базе</h1></body></html>";
exit;
}
/* Выбираем базу данных */
mysql_select_db("datb");

// добавляем данные в таблицу
mysql_query("insert into 'atab' ('YYYY', 'MM', 'DD', 'text', 'url', 'image', 'N')
values ($yyyy, $mm, $dd, $text, $url, $image), '' ");

...код выполняется, переходит дальше...
А в результате в БД ничего не появляетсяОднако
В чём может быть причина?
2. TvoyWeb - 27 Апреля, 2005 - 15:33:07 - перейти к сообщению
Вот так наверное правильней будет:
CODE:
mysql_query("INSERT INTO 'atab' (`YYYY`,`MM`,`DD`,`text`,`url`,`image`,`N`) VALUES ($yyyy, $mm, $dd, $text, $url, $image)");
3. chiv - 28 Апреля, 2005 - 02:33:56 - перейти к сообщению
TvoyWeb - всё равно не работает.
Вот полный скрипт:
CODE:
<?
// подкл. вспомогат. файлы
include "../opt.php";

/* Проверяем, нажимал ли кнопку go */
if (!isset($go)) { echo "Не указаны параметры\n"; exit; }

/* Проверяем корректность введенных данных */
if ($yyyy==0) { echo "Не указан год\n"; exit; }
if ($mm>12) { echo "Указано недопустимое значение месяца\n"; exit; }
if ($dd>31) { echo "Указано недопустимое значение дня\n"; exit; }
if ($text==0) { echo "Не указано событие\n"; exit; }

/* Подключаемся к базе */
if (!mysql_connect($server, $user, $password))
{
echo "<html><head><title>ОШИБКА</title></head>";
echo "<body><h1>Ошибка подключения к базе</h1></body></html>";
exit;
}
/* Выбираем базу данных */
mysql_select_db("dorogavn_aviahist");

// добавляем данные в таблицу
mysql_query("INSERT INTO 'aviahist' (`YYYY`, `MM`, `DD`, `text`, `url`, `image`, `N`)
VALUES ($yyyy, $mm, $dd, $text, $url, $image)");

echo "<html><head><title>test</title></head>";
echo "<body>год - $yyyy<BR>месяц - $mm<BR>день - $dd<BR>событие - $text<BR>";
echo "ссылка - $url<BR>картинка - $image</body></html>";
echo "</body></html>";
exit;

//выводим страницу ввода данных
//require "test.htm";
?>

В ходе выполнения никаких сообщений об ошибках не выдаётся, в результате выводятся данные (которые должны), но в БД пусто!!!Ниндзя
Как и где найти ошибку?
4. TvoyWeb - 28 Апреля, 2005 - 03:48:35 - перейти к сообщению
Для начала, для вывода всех ошибок, вставь в самый верх скрипта строчку:
CODE:
error_reporting(E_ALL);

Дальше замени:
CODE:
/* Выбираем базу данных */
mysql_select_db("dorogavn_aviahist");

на
CODE:
/* Выбираем базу данных */
mysql_select_db("dorogavn_aviahist") or die("Не могу найти на DB \"dorogavn_aviahist\": " . mysql_error());

чтобы выводились ошибки мускула, при выборе БД.
Дальше замени:
CODE:
// добавляем данные в таблицу
mysql_query("INSERT INTO 'aviahist' (`YYYY`, `MM`, `DD`, `text`, `url`, `image`, `N`)
VALUES ($yyyy, $mm, $dd, $text, $url, $image)");

на
CODE:
// добавляем данные в таблицу
mysql_query("INSERT INTO 'aviahist' (`YYYY`, `MM`, `DD`, `text`, `url`, `image`, `N`) VALUES ($yyyy, $mm, $dd, $text, $url, $image)") or die("Не удалось добавить данные: " . mysql_error());

Для вывода ошибок при добавлении данных в таблицу.
Запусти скрипт и посмотри что будет.
5. chiv - 28 Апреля, 2005 - 05:16:25 - перейти к сообщению
Запустил... выдаёт:
Цитата:
Не удалось добавить данные: 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 ''aviahist' (`YYYY`, `MM`, `DD`, `text`, `url`, `image`, `N`) VA

Если добавить данные с помощью phpMyAdmin, то запрос выглядит так:
CODE:
SQL-запрос:
INSERT INTO `aviahist` ( `YYYY` , `MM` , `DD` , `text` , `url` , `image` , `N` )
VALUES (
'1111', '2', '3', '44444', NULL , NULL , ''
)

Поле N у меня PRIMARY с auto_increment... может быть причина в этом?
6. TvoyWeb - 28 Апреля, 2005 - 06:21:35 - перейти к сообщению
chiv
Ну правильно, в value у тебя 6 значений, а полей ты перечисляешь семь.
CODE:
....aviahist' (`YYYY`, `MM`, `DD`, `text`, `url`, `image`, `N`) VALUES ($yyyy, $mm, $dd, $text, $url, $image).....

Видишь? Убери поле N, оно само по себе добавится, если оно у тебя
chiv пишет:
Поле N у меня PRIMARY с auto_increment...

7. chiv - 28 Апреля, 2005 - 06:55:18 - перейти к сообщению
Исправил...
CODE:
mysql_query( "INSERT INTO `aviahist` (`YYYY`, `MM`, `DD`, `text`, `url`, `image`) VALUES ($yyyy, $mm, $dd, $text, $url, $image)" ) or die("Не удалось добавить данные: " . mysql_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
8. TvoyWeb - 28 Апреля, 2005 - 12:17:42 - перейти к сообщению
Ну тогда так:
CODE:
mysql_query( "INSERT INTO `aviahist` (`YYYY`, `MM`, `DD`, `text`, `url`, `image`) VALUES ('$yyyy', '$mm', '$dd', '$text', '$url', '$image')" ) or die("Не удалось добавить данные: " . mysql_error());
9. chiv - 28 Апреля, 2005 - 14:01:10 - перейти к сообщению
TvoyWeb
Спасибо!
В результате выявлено следующее:
В исходной форме обязательными для заполнения являются поля yyyy и text, поэтому все поля и не заполнялись. Если заполнить все поля, то в VALUES можно переменные ставить и без кавычек - в моём случае поставил кавычки и всё заработалоУлыбка

PS Надеюсь эта тема будет полезна не только мнеПодмигивание
10. chiv - 06 Мая, 2005 - 07:47:14 - перейти к сообщению
В ходе эксплуатации неожиданно выявилось:
Если в поле text написать что-либо кроме цифр то выдаётся сообщение:
Цитата:
Не удалось добавить данные: Unknown column 'вапортпаспт' in 'field list'

Что не так?ХмОднако

Форум на AlfaSpace.NET


Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.0414]     [ Gzipped ]



Notice: ob_end_flush(): failed to send buffer of ob_gzhandler (1) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/page_tail.php on line 33