Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Базы Данных > подскажите как добавить данные


Автор: hinku 20.8.2008, 16:24
имеется вот аткой код

Код

<?php

$link=mysql_connect($host,$user,$pass) or die(mysql_errno($link).mysql_error($link)); 
$db=mysql_select_db($db_name,$link) or die(mysql_errno($link).mysql_error($link)); 


if (isset($_POST['fio'])) {
  $user_fio=mysql_real_escape_string($_POST['fio']);
  $user_dolj=mysql_real_escape_string($_POST['dolj']);
  $user_sluj=mysql_real_escape_string($_POST['sluj']);
  $user_gor=mysql_real_escape_string($_POST['gor']);
  $user_vnutr=mysql_real_escape_string($_POST['vnutr']);
  $user_mob=mysql_real_escape_string($_POST['mob']);
  $user_fax=mysql_real_escape_string($_POST['fax']);
    
 mysql_select_db("$dbname");
      mysql_query("INSERT INTO (fio,dolj,sluj,gor,vnutr,mob,fax) 
                   VALUES ('$user_fio','$user_dolj','$user_sluj','$user_gor','$user_vnutr','$user_mob','$user_fax')");
      
    }    
/
?>



по идее после передачи данных в эту страницу они посредством INSERT INTO должны добавится в базу но ничего не происходит
подскажите в чем ошибка

Автор: Feldmarschall 20.8.2008, 16:43
по идее после передачи данных в эту страницу они посредством INSERT INTO должны добавится в базу
в чем ошибка, тебе должен сказать твой сервер, а не посторонние люди
echo mysql_error();

Автор: Sannis 20.8.2008, 16:47
http://en.wikipedia.org/wiki/Debugging smile
С помощью mysql_errno($link).mysql_error($link) убедитесь, что последние два вызова также выполнились без ошибок. Попробуйте сделать также
Код

echo "INSERT INTO (fio,dolj,sluj,gor,vnutr,mob,fax) VALUES ('$user_fio','$user_dolj','$user_sluj','$user_gor','$user_vnutr','$user_mob','$user_fax')";
а также включить режим показа ошибок в php.ini.

Автор: Feldmarschall 20.8.2008, 16:48
Sannis, а я вот всё спросить хочу, почему все выводят номер ошибки? Как им пользоваться?

Автор: hinku 20.8.2008, 16:56
насколько я понимаю режим показа ошибок в php.ini. это должно быть register_globals on - если оно то сделано
 mysql_errno($link) - сделано ошибок никаких не выводт :( вот такой компот

Автор: Sannis 20.8.2008, 16:59
Цитата(Feldmarschall @  20.8.2008,  16:48 Найти цитируемый пост)
Sannis, а я вот всё спросить хоxу, почему все выводят номер ошибки? Как им пользоваться?

Не знаю, зачем это делать в своих скриптах, но когда новички работают с распространёнными движками, то по выводимому номеру ошибки им проще найти решение в FAQ или документации, т.к. им обычно сложно из сообщения об ошибке вычленить главное, а по "ERROR 1132" поиск осуществлять проще. Да, про пернводчики они обычно тоже не знают smile А выше я просто автора процитировал, всё равно ж он со временем перейдёт к более серьёзным скриптам, я надеюсь, и не будет вообще писать на таком низком уровне.

Добавлено через 2 минуты и 24 секунды
Цитата(hinku @  20.8.2008,  16:56 Найти цитируемый пост)
насколько я понимаю режим показа ошибок в php.ini. это должно быть register_globals on - если оно то сделано

Нет(http://ru.php.net/manual/ru/ini.core.php#ini.register-globals). Читайте http://ru.php.net/manual/ru/errorfunc.configuration.php#ini.display-errors и http://ru.php.net/manual/ru/errorfunc.configuration.php#ini.error-reporting

Автор: Feldmarschall 20.8.2008, 17:01
нет =)
register_globals - это не режим показа ошибок и должно быть off

поменяй строчку с  mysql_query на
$result=mysql_query...
и ниже
напиши
var_dump($result);

а так же убедись, что данные действительно не добавляются, и это тебе не кажется

Добавлено через 12 минут и 12 секунд
короче, hinku
читаешь здесь http://forum.vingrad.ru/articles/topic-206796.html (надо было сразу ссылку давать, а поленился) и ищешь ошибку
это единственный способ узнать, в чем проблема. а ккод здесь писать - бессмысленное занятие

Автор: hinku 20.8.2008, 17:21
данные действительно не добавляются
сразу не добавил переменную result потомучто не знал как ее потом вызвать smile списиби за то что подсказали
register globals off
display errors on

все равно никаких ошибок не выводится не могу понять в чем проблема

Автор: Sannis 20.8.2008, 17:38
Проблема в запросе. А вот почему не выводит -- надо читать в указанной теме и документации. Должно выводить.
Цитата(hinku @  20.8.2008,  17:21 Найти цитируемый пост)
все равно никаких ошибок не выводится не могу понять в чем проблема
А сервер перезапустили после изменения php.ini? smile

Автор: Feldmarschall 20.8.2008, 17:52
Косая черта в конце скрипта там к чему висит?

Автор: hinku 21.8.2008, 08:06
Sannis перезагрузил сразу (это я усвоил сразу)

Feldmarschall очепятка в срипте её нет

Автор: Feldmarschall 21.8.2008, 08:43
Началось... "ой, в коде её нет"  "ой, данные добавляются" "ой, только не туда" "ой, я сервер перезагружал, но не тот".
Откуда могла взяться опечатка в коде? Руками ты его, что ли, перепечатывал в форум?
Если ты пишешь сюда код с опечатками, то какой смысл вообще задавать какие-либо вопросы? Если даже код, который ты здесь написал, не имеет ничего общего с тем кодом, который у тебя не работает?

Короче. Если ты не можешь обойтись без опечаток даже задавая вопрос на форуме, то все дело в них. Ищи, исправляй. Форум тут тебе не поможет.

Автор: Sannis 21.8.2008, 09:50
Цитата(Feldmarschall @  21.8.2008,  08:43 Найти цитируемый пост)
Короче. Если ты не можешь обойтись без опечаток даже задавая вопрос на форуме, то все дело в них. Ищи, исправляй. Форум тут тебе не поможет. 

Всё верно. Так что перечитывайте тему(это я топикстартеру), смотрите что за запрос пытается выполнить скрипт(как -- написано выше), выполняйте его в phpMyAdmin и смотрите на результат. А статью про ошибки вы, видимо, так и не прочитали.

Автор: hinku 22.8.2008, 08:48
все получилось спасидо за помошь  Sannis и Feldmarschall


Автор: piflit 28.8.2008, 14:58
я что-то пропустил, или там нет имени таблицы после INSERT INTO?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)