вставка значений из выпадающего списка в таблицу базы данных


Я новичок в PHP. Когда я пытаюсь вставить значение из выпадающего списка в таблицу базы данных, показывая некоторые ошибки

Код

<html>
<head>
<title>OPTION</title>
</head>
<body>
<form action="option.php" method="get">
Name :<select name="name">
<option value="name1">name1</option>
<option value="name2">name2</option>
<option value="name3">name3</option>
<option value="name4">name4</option>
</select><br>
<input type="submit" name="submit" value="Insert">
</form>
</body>
</html>
<?php
if(isset($_GET['submit']))
{
    $name=$_GET['name'];
    $c=mysql_connect("localhost","root","");
    mysql_select_db("test");
    $ins=mysql_query("insert into option (name) values ('$name')",$c);
    if($ins)
    {
        echo "<br>".$name."inserted";
    }
    else
    {
        echo mysql_error();
    }
}
?>

Когда я пытаюсь положить, показывая эту ошибку

У вас есть ошибка в синтаксисе SQL; проверьте руководство, которое соответствует вашей версии сервера MySQL для правильного синтаксиса, чтобы использовать рядом ' option (name) values ('name3') ' в строке 1

Спасибо..,

4 2

4 ответа:

Вы должны изменить имя вашей таблицы (option). Option является ключевым словом mysql, и поэтому он вызовет синтаксическую ошибку при выполнении запросов с php.

Измените имя таблицы на option_test или что-то еще и внесите соответствующие изменения в свой php-код. Тогда это сработает.

Также начните использовать mysqli_ или PDO, поскольку mysql_ устарело с PHP5 и далее.

Попробуйте этот код, я изменил name из select на names и

Используйте обратные стрелки вокруг имени таблицы

    <form action="option.php" method="GET">
    Name :<select name="names">
    <option value="name1">name1</option>
    <option value="name2">name2</option>
    <option value="name3">name3</option>
    <option value="name4">name4</option>
    </select><br>
    <input type="submit" name="submit" value="Insert">
    </form>

    <?php
    if(isset($_GET['names']))
    {
        $name=$_GET['names'];
        $c=mysql_connect("localhost","root","");
        mysql_select_db("test");
        $ins=mysql_query("INSERT INTO `option` 
                          (name)
                          VALUES ('$name')",$c) or die(mysql_error());
        if($ins)
        {
            echo "<br>".$name."inserted";
        }

    }

?>

Html-Код:

<select name="a">
    <option value="val1">value1<option>
    <option value="val2">value2<option>
    <option value="val3">value3<option>
</select>

PHP код:

<?php
    $a=$_POST[a];
?>

Приведенный выше php-код поможет вам извлечь данные из выбранного параметра в переменную php $a. оттуда вы можете вставить свои данные в запрос так же, как вы вставили их раньше.

В коде mysql_query("insert into option (name) values ('$name')",$c); здесь нет необходимости добавлять переменную соединения к этой функции.
Вы можете просто написать mysql_query("insert into option (name) values ('$name')")or die(mysql_error()); причина вызова функции mysql_error() заключается в том, что вы узнали, какой тип ошибки приходит..
и еще одно: вы должны изменить имя вашей таблицы с option на option1 или что-нибудь еще...тогда он будет работать нормально..не переживай...:)