вставка значений из выпадающего списка в таблицу базы данных
Я новичок в 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 ответа:
Вы должны изменить имя вашей таблицы (
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 или что-нибудь еще...тогда он будет работать нормально..не переживай...:)