1

我经历了将 mysql_* 代码转换为 PDO 代码的过程。我已经运行它并检查它是否正常工作以及一切。我只是希望 Stack Overflow 对其进行审查,以确保我正确地终止了连接,是否应该使用其他方法(例如事务),确保没有大量的安全漏洞。这是代码:

<?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();
    }
?>

就像我说的,它有效,但我希望它在 100 人同时注册时安全有效。一切看起来都好吗?

4

1 回答 1

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();
于 2012-09-17T20:29:23.487 回答