【发布时间】:2011-12-06 13:35:35
【问题描述】:
【问题讨论】:
-
查看 PDO:phpro.org/tutorials/Introduction-to-PHP-PDO.html。 +1 想要学会正确地做这件事。 :)
标签: php mysql mysqli prepared-statement
【问题讨论】:
标签: php mysql mysqli prepared-statement
<form action="sample.php" method="POST">
<input name="sample" type="text">
<input name="submit" type="submit" value="Submit">
</form>
<?php
if (isset($_POST['submit'])) {
$mysqli = new mysqli('localhost', 'user', 'password', 'mysampledb');
/* Check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$stmt = $mysqli->prepare("INSERT INTO SampleTable VALUES (?)");
$stmt->bind_param('s', $sample); // Bind $sample to the parameter
$sample = isset($_POST['sample'])
? $_POST['sample']
: '';
/* Execute prepared statement */
$stmt->execute();
printf("%d Row inserted.\n", $stmt->affected_rows);
/* Close statement and connection */
$stmt->close();
/* Close connection */
$mysqli->close();
}
?>
这是一个非常基本的例子。今天许多 PHP 开发人员正在转向PDO。 Mysqli 并没有过时,但 PDO 要容易得多,恕我直言。
【讨论】:
real_escape_string() 是多余的。使用准备好的语句的全部意义在于避免手动转义值。