sql >> データベース >  >> RDS >> Mysql

プリペアドステートメントを介したINSERTINTOを使用したPDO

    あなたはそれをそのように使うべきです

    <?php
    $dbhost = 'localhost';
    $dbname = 'pdo';
    $dbusername = 'root';
    $dbpassword = '845625';
    
    $link = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbusername, $dbpassword);
    
    $statement = $link->prepare('INSERT INTO testtable (name, lastname, age)
        VALUES (:fname, :sname, :age)');
    
    $statement->execute([
        'fname' => 'Bob',
        'sname' => 'Desaunois',
        'age' => '18',
    ]);
    

    プリペアドステートメントは、入力をサニタイズするために使用されます。これを行うには、:fooを使用できます。 なし SQL内の任意の一重引用符をバインドする 変数、次にexecute() SQLステートメントで定義した変数の連想配列で渡す関数。

    ?を使用することもできます :fooの代わりに 次に、値だけの配列を渡して、そのように入力します;

    $statement = $link->prepare('INSERT INTO testtable (name, lastname, age)
        VALUES (?, ?, ?)');
    
    $statement->execute(['Bob', 'Desaunois', '18']);
    

    どちらの方法にも長所と短所があります。個人的には、読みやすいようにパラメーター名をバインドすることを好みます。



    1. CentOS7にMySQLをインストールする方法

    2. PostgreSQLバックアップの自動テスト

    3. 列データ型のBYTEとCHARの違い

    4. c#を使用して.SQLスクリプトファイルを実行する方法