Ошибка при добавление данных

Тема в разделе "Как сделать...", создана пользователем magarych, 22 окт 2013.

  1. magarych

    magarych Постоялец

    Регистр.:
    21 июн 2013
    Сообщения:
    134
    Симпатии:
    64
    Ошибка при добавление данных
    Вроде бы всё правильно, но не добавляет. у меня вопрос я хочу добавить в первую строку моей таблицы в первый столбец YmyaAvotora запись. У меня есть другие столбцы в этой таблице это как то может повлиять на добавление данных?
    Код PHP
    PHP:
    <?php
    $host 
    "mysql7.000webhost.com";
    $user "a1252398_fors117";
    $password "fors117";
    $db "a1252398_zakaz";
    if (!
    $conn mysql_connect($host$user$password))
    {
    echo 
    "<h2>MySQL Error!</h2>";
    exit;
    }
    $First_name $_POST['YmyaAvotor'];
    mysql_select_db($db);
    $result mysql_query("INSERT INTO `zakaz`.`table` (YmyaAvotor) VALUES('$YmyaAvotor')");
    if (
    $result=='true')
    {echo 
    "Ваши данные успешно добавлены";}
    else{echo 
    "Ваши данные не добавлены";}
    header("Location: index.php");     
    ?>
    Код HTML
    HTML:
    <html>
    <head>
    <title>
    zakaz
    </title>
    </head>
    <body>
    <form action='config.php' method='POST'>
    YmyaAvotor:<input type='text' name='YmyaAvotor'><br/>
    <input type='submit' value='CHECK'>
    </body>
    </html>
     
    Последнее редактирование модератором: 22 окт 2013
  2. UJy

    UJy

    Регистр.:
    23 авг 2011
    Сообщения:
    320
    Симпатии:
    116
    У тебя видать не включен register_globals, поэтому переменной $YmyaAvotor не существует... Код от Василисы в данном случае сработает.
     
    magarych нравится это.
  3. latteo

    latteo Эффективное использование PHP, MySQL

    Moderator
    Регистр.:
    28 фев 2008
    Сообщения:
    1.404
    Симпатии:
    1.185
    Если эти столбцы обязательны для заполнения, то mysql вернёт ошибку.

    Для просмотра ошибок, заменить конец кода на
    PHP:
    if ($result=='true')
    {
      echo 
    "Ваши данные успешно добавлены";

    }
    else{
      echo 
    "Ваши данные не добавлены";
      echo 
    mysql_errno($conn) . ": " mysql_error($conn) . "\n";
    }
    //header("Location: index.php"); 
     
    magarych нравится это.
  4. esche

    esche

    Регистр.:
    9 авг 2009
    Сообщения:
    360
    Симпатии:
    243
    Второе выделенное жирным заменить на первое.. иначе зачем первая (в этом блоке) строчка?
    И до кучи, про SQL-инъекции почитать рекомендую. или в Имя введи, например,
     
  5. cruide

    cruide Писатель

    Регистр.:
    25 июл 2012
    Сообщения:
    8
    Симпатии:
    22
    Отвечу проще... Сравнит и поймёт... надеюсь...
    Сделал пару пометок... но это далеко не все

    PHP:
    $host    "mysql7.000webhost.com";
    $user    "a1252398_fors117";
    $password "fors117";
    $db      "a1252398_zakaz";

    if( !(
    $conn mysql_connect($host$user$password)) ) {
        echo 
    "<h2>MySQL Error!</h2>";
        exit;
    }

    mysql_select_db($db);

    $First_name $_POST['YmyaAvotor'];

    /* Пихать данные в SQL запрос без проверки плохо... можно подхватить каку */
    /* Добавлять `zakaz`. необязательно, ведь базу уже выбрали выше  с помощью mysql_select_db */

    /*
      Почему выбран вариант через SET?
      На мой взгляд так понятней...
      INSERT INTO `table`
      SET `first_name` = 'Vasya',
          `last_name` = 'Kakuli',
          `height` = 186
    */

    $result    mysql_query("INSERT INTO `table` SET `YmyaAvotor` = '{$First_name}'"$conn);

    if( !
    mysql_errno($conn) ) {
        echo 
    "Ваши данные успешно добавлены";
    } else{
        echo 
    "Ваши данные не добавлены <br />\n" mysql_error($conn);
    }

    /*
    Тут не понятно, зачем выводить выше echo если всё равно происходит редирект...
    Кстати который не сработает из-за уже отправленных headers :)
    */
    header("Location: index.php");

     
    Последнее редактирование: 23 окт 2013
    magarych нравится это.