2013-08-17 5 views
0

У меня есть код для вставки значений в базу данных mysql. но проблема ничего не вставляет.Вставка данных в базу данных MySQL из droplist

то, что я хочу, если пользователь выбирает из таблицы толчков1. значение, вставленное в таблицу1 и сыну для таблицы2.

мой HTML код

<html> 
<body> 

<form method="post" action="update.php"> 
<input type="txt" name="name"/> 
<select name="tables"> 
<option value="table1">table1</option> 
<option value="table2">table2</option> 
<option value="table3">table3</option> 
<option value="table4">table4</option> 
</select> 

<input type="submit" value="Submit Pick" /> 

</body> 
</html> 

мой PHP код

<?php 


$table =$_POST['tables']; 
$name =$_POST['name']; 

$con=mysqli_connect("localhost","sqldata","sqldata","accounts"); 
// Check connection 
if (mysqli_connect_errno()) 
{ 
echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 

$sql="INSERT INTO $table (name) 
VALUES 
('$_POST[name]')"; 



echo ".$table.$name"; 

?> 
+1

... вы никогда ничего не вставляете. Вы просто создаете строку SQL и ... ничего. –

+0

спасибо, что у вас есть работа. – hadi

ответ

0

Вы никогда не запуская запрос. После того, как вы определите $ sql, выполните его.

mysqli_query($con, $sql); 

Также обратите внимание, что это только тестовый код. Вы никогда НИКОГДА не берете необработанный ввод из запроса, не передавая его через что-то вроде mysqli_escape_string.

+0

im получение этой ошибки: Предупреждение: mysqli_escape_string() ожидает ровно 2 параметра, 1 задано в /var/www/html/download/update.php в строке 4 Предупреждение: mysqli_escape_string() ожидает ровно 2 параметра, 1 заданных в/var/www/html/download/update.php в строке 5 Ошибка: у вас возникла ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего MySQL-сервера, для правильного синтаксиса для использования рядом с (имя) VALUES ('mike') 'в строке 1 – hadi

+0

Вам нужно 'mysqli_escape_string ($ con, $ name);' Проверить руководство: http : //www.php.net/manual/en/mysqli.real-escape-string.php (обратите внимание, что 'mysqli_escape_string' является псевдонимом для' mysqli_real_escape_string' ... они идентичны, за исключением имени). –

+0

im get again error: Примечание: неопределенная переменная: con in /var/www/html/download/update.php в строке 5 Предупреждение: mysqli_escape_string() ожидает, что параметр 1 будет mysqli, null указан в/var/www/html/download/update.php в строке 5 – hadi

0

В коде содержатся некоторые ошибки. Как только вы никогда не звоните mysqli_query, чтобы отправить SQL на сервер. Кроме того, в вашей строке sql есть ошибка. Если вы хотите вставить значение массива, вы должны использовать скобки: {$_POST[name]}. Еще лучше использовать mysqli_escape_string. Таким образом, ваш код должен выглядеть так:

$name = mysqli_escape_string($con, $_POST['name']); 

$sql="INSERT INTO $table (name) 
VALUES 
('$name')" 

mysqli_query($con, $sql); 
+0

im получение этой ошибки: Предупреждение: mysqli_escape_string() ожидает ровно 2 параметра, 1 задано в /var/www/html/download/update.php в строке 4 Предупреждение: mysqli_escape_string () ожидает ровно 2 параметра, 1 задано в /var/www/html/download/update.php в строке 5 Ошибка: у вас возникла ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с (имя) VALUES ('mike') 'в строке 1 – hadi

+0

Я отредактировал код для передачи '$ con' в качестве параметра' mysqli_escape_string ' – benestar