Ric*_*ard 1 php mysql database pdo database-security
我经历了将mysql_*代码转换为PDO代码的过程.我跑了它,检查它是否有效.我只是想要stackoverflow对它的审查,以确保我正确地杀死连接,我应该使用其他方法(例如交易),确保没有大量的安全漏洞.这是代码:
<?php
try {
$link = new PDO('mysql:****;dbname=****;charset=UTF-8','****','****');
$link->exec("INSERT INTO Registration (`First Name`, `Last Name`) VALUES ('$_POST[fname]', '$_POST[lname]')");
} catch(PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
die();
}
?>
Run Code Online (Sandbox Code Playgroud)
就像我说的那样,它可以工作,但是当100个人同时注册时,我希望它安全有效.一切都好看吗?
不..你正在将mysql_转换为PDO 1:1.这样,mysql_中的问题也将成为PDO中的一个问题.
您应该查看准备好的查询和参数绑定.
这是我的意思的一个例子:
$dbh = new PDO('mysql:****;dbname=****;charset=UTF-8','****','****');
$first = 'John';
$last = 'Doe';
$stmt = $dbh->prepare(
"INSERT INTO Registration (firstname, lastname) VALUES (:first, :last)");
$stmt->bindParam(':first', $first);
$stmt->bindParam(':last', $last);
$stmt->execute();
// insert another row with different values
$first = 'John';
$last = 'Smith';
$stmt->execute();
Run Code Online (Sandbox Code Playgroud)