Вставка данных в таблицу с использованием php

Моя форма html выглядит следующим образом:

<html> <body> <form action="createconnection.php" method="post"> Firstname : <input type="text", name="fname"> </br> Lastname : <input type="test" name="lname"> </br> Age : <input type="text" name="age"></br> <input type="submit"> </form> </body> </html> 

и php-файл: имя таблицы и имя db все в порядке.

 <?php // Create connection $con=mysqli_connect('127.0.0.1:3306' ,'root','root','my_db'); echo "hi"; if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); } $sql="INSERT INTO table1 (Fname, LName, Age) VALUES ('$_POST[fname]','$_POST[lname]','$_POST[age]')"; if (!mysqli_query($con,$sql)) { die('Error: ' . mysqli_error($con)); } echo "1 record added"; mysqli_close($con); ?> 

Я пробовал очень много, но когда я его выполняю, он ничего не дает и ничего не обновляет в таблице.

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

Обратите внимание на знаки опроса по запросу и bind_param , s означает строку, а i означает integer, вы можете прочитать здесь больше .

Таким образом, ssi означает, что мы получим 2 строки и 1 целую запись.

 <?php // Your database info $db_host = ''; $db_user = ''; $db_pass = ''; $db_name = ''; if (!empty($_POST)) { $con = mysqli_connect($db_host, $db_user, $db_pass, $db_name); if ($con->connect_error) die('Connect Error (' . mysqli_connect_errno() . ') '. mysqli_connect_error()); $sql = "INSERT INTO table1 (Fname, LName, Age) VALUES (?,?,?)"; if (!$stmt = $con->prepare($sql)) die('Query failed: (' . $con->errno . ') ' . $con->error); if (!$stmt->bind_param('ssi',$_POST['fname'],$_POST['lname'],$_POST['age'])) die('Bind Param failed: (' . $con->errno . ') ' . $con->error); if (!$stmt->execute()) die('Insert Error ' . $con->error); echo "Record added"; $stmt->close(); $con->close(); } ?> <html> <body> <form action="createconnection.php" method="post"> Firstname : <input type="text", name="fname"> </br> Lastname : <input type="test" name="lname"> </br> Age : <input type="text" name="age"></br> <input type="submit"> </form> </body> </html> 

На всякий случай здесь используется таблица SQL:

 CREATE TABLE IF NOT EXISTS `table1` ( `Fname` varchar(50) NOT NULL, `LName` varchar(50) NOT NULL, `Age` int(3) NOT NULL ); 

Вы должны изменить свой sql как это (переменные должны быть объединены)

 $sql="INSERT INTO table1 (Fname, LName, Age) VALUES ('".$_POST['fname']."','".$_POST['lname']."',".$_POST['age'].")";