Не добавляються данные в базу Mysql

204
25 апреля 2017, 09:02

Есть форма:

<!doctype html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <title>Countries</title>
</head>
<body>
    <form action="getForm.php" method="POST">
        <label for="country">Введите страну</label>
        <input type="text" name="country" size="15"><br>
        <label for="city">Введите город</label>
        <input type="text" name="city" size="15"><br>
        <label for="district">Введите район</label>
        <input type="text" name="district" size="15">
        <br>
        <input type="submit" value="Добавить в базу">
    </form>
</body>
</html>

Есть обработчик:

<?php
    $country=$_POST['country'];
    $city=$_POST['city'];
    $district=$_POST['district'];
    $link = mysql_connect("localhost", "root") or die("Could not connect: " . mysql_error());
    mysql_select_db("countries");
    mysql_query("SET NAMES UTF8");
    mysql_query("SET CHARACTER SET UTF8");
    $s="INSERT INTO Country VALUES
    ('".$country."','".$city."','".$district."');";
    mysql_query($s);
    if($s){
        echo "Запись добавлена";
    } else {
        mysql_error();
    }
    mysql_close($link);
?>

Как уже понятно, хочу, чтобы данные, введённые в форму, озаписывались в базу. При проверке функция echo выполняется, однако в базу ничего не записывается, ломаю голову...

Вот сама база:

+---------------+-------------+------+-----+---------+----------------+
| Field         | Type        | Null | Key | Default | Extra          |
+---------------+-------------+------+-----+---------+----------------+
| id            | int(10)     | NO   | PRI | NULL    | auto_increment |
| name_country  | varchar(20) | NO   |     | NULL    |                |
| name_city     | varchar(20) | NO   |     | NULL    |                |
| name_district | varchar(20) | NO   |     | NULL    |                |
+---------------+-------------+------+-----+---------+----------------+

Помогите разобраться :(

Answer 1

Я могу сейчас ошибаться, но в формате запроса INSERT INTO в случае, если вы не указываете конкретно, какие поля должны быть заполнены - необходимо в VALUES указать значения абсолютно всех полей - включая primary key.
Иными словами, стоит запрос строить либо таким образом:

INSERT INTO Country VALUES(1, 'country', 'city', 'dist');

Либо таким

INSERT INTO Country (name_country, name_city, name_district) VALUES ('country', 'city', 'dist');

А еще меня всегда веселила комбинация условий "NOT NULL" и "DEFAULT NULL".

READ ALSO
авторизация через OK - не получаю почту

авторизация через OK - не получаю почту

ЗдравствуйтеИмею ссылку на получение данных

300
Viber API отправка сообщений

Viber API отправка сообщений

ЗдравствуйтеПоявилась идея сделать отправку сообщений в public account на Viber через сайт

734
7 простых шагов в SEO-оптимизации

7 простых шагов в SEO-оптимизации

В оптимизации сайта под поисковые системы нет ничего необычного, тем более что большинство из нас часто слышали этот термин, особенно в сфере...

1626
Списки: вывод, заполнение, поиск в списке - C++

Списки: вывод, заполнение, поиск в списке - C++

Здравствуйте, может кто-то рассказать и показать как правильно заполнять, выводить список который основан на структуре с 5 элементами разных...

260