Ето един много прост работен пример за вашия код с подготвени изрази.
Обърнете внимание на знаците за разпит в заявката и bind_param
, s
означава низ и i
означава цяло число, можете да прочетете повече туксилно>
.
Така че 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
);