PHP PDO访问mysql

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个人同时注册时,我希望它安全有效.一切都好看吗?

Jvd*_*erg 5

不..你正在将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)