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_をPDO1: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 に答える