问题:
如何替换过时的 mysql_* 函数PDO 和准备好的语句来安全地存储和检索数据库中的数据?
答案:
$hostname = '*host*'; $username = '*user*'; $password = '*pass*'; $database = '*database*'; $dbh = new PDO("mysql:host=$hostname;dbname=$database", $username, $password);
$username = $_POST['username']; $email = $_POST['email']; $stmt = $dbh->prepare("INSERT INTO `users` (username, email) VALUES (?, ?)"); $stmt->bindParam(1, $username, PDO::PARAM_STR); $stmt->bindParam(2, $email, PDO::PARAM_STR); $stmt->execute();
PDO::PARAM_STR 不需要长度参数。但是,如果数据库表中的字段有最大字符数限制,则可以在 PDO::PARAM_STR 之后指定它,如下所示:
$stmt->bindParam(1, $username, PDO::PARAM_STR, 255);
$user_id = $_GET['id']; $stmt = $dbh->prepare("SELECT * FROM `users` WHERE `id` = ?"); $stmt->bindParam(1, $user_id, PDO::PARAM_INT);
以上是如何用 PDO 和准备好的语句替换过时的'mysql_*”函数以实现安全的数据库交互?的详细内容。更多信息请关注PHP中文网其他相关文章!