これは、プリペアドステートメントを使用したコードの非常に簡単な実例です。
クエリと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
);