「プリペアドステートメント」の版間の差分
提供: セキュリティ
(ページの作成:「<!-- vim: filetype=mediawiki --> プリペアドステートメント (prepqred statement) とは、SQL文を解析し、SQL を実行できるように準...」) |
|||
行1: | 行1: | ||
− | + | [[プリペアドステートメント]] (prepqred statement) とは、SQL文を解析し、[[SQL]] を実行できるように準備したステートメントです。[[プリペアドステートメント]] は、動的にパラメータを指定できます。ステートメントを再利用することにより、SQL文の解析作業を1回だけにでき、パフォーマンスの低下を防げます。 | |
− | + | ||
− | + | ||
− | [[プリペアドステートメント]] (prepqred statement) | + | |
'''読み方''' | '''読み方''' | ||
行10: | 行7: | ||
== 概要 == | == 概要 == | ||
− | |||
[[プリペアドステートメント]] は、 [[SQL Injection]] 対策として利用されます。 | [[プリペアドステートメント]] は、 [[SQL Injection]] 対策として利用されます。 | ||
− | |||
== PHP PDO でのプリペアドステートメント == | == PHP PDO でのプリペアドステートメント == | ||
− | |||
<syntaxhighlight lang="php"> | <syntaxhighlight lang="php"> | ||
<?php | <?php | ||
行34: | 行28: | ||
?> | ?> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | |||
== 関連項目 == | == 関連項目 == | ||
− | |||
* [[SQL Injection]] | * [[SQL Injection]] | ||
− | * | + | * プレースホルダ |
− | * | + | * PDO |
+ | <!-- | ||
+ | vim: filetype=mediawiki | ||
+ | --> |
2015年11月7日 (土) 23:43時点における最新版
プリペアドステートメント (prepqred statement) とは、SQL文を解析し、SQL を実行できるように準備したステートメントです。プリペアドステートメント は、動的にパラメータを指定できます。ステートメントを再利用することにより、SQL文の解析作業を1回だけにでき、パフォーマンスの低下を防げます。
読み方
- プリペアドステートメント
- ぷりべあど すてーとめんと
- prepqred statement
- ぷりべあど すてーとめんと
概要
プリペアドステートメント は、 SQL Injection 対策として利用されます。
PHP PDO でのプリペアドステートメント
<?php $sql =<<SQL SELECT * FROM t1 WHERE id=:id; SQL; $data = array (); try { $dbh = new PDO ('...', 'mysql', 'secret'); $sth = $dbh->prepare($sql); $sth->execute (array(':id'=>1)); $data[] = $sth->fetch(); $sth->execute (array(':id'=>2)); $data[] = $sth->fetch(); } catch (PDOException $e) { error_log ($e); } ?>
関連項目
- SQL Injection
- プレースホルダ
- PDO