「プリペアドステートメント」の版間の差分

提供: セキュリティ
移動: 案内検索
(ページの作成:「<!-- vim: filetype=mediawiki --> プリペアドステートメント (prepqred statement) とは、SQL文を解析し、SQL を実行できるように準...」)
 
 
行1: 行1:
<!--
+
[[プリペアドステートメント]] (prepqred statement) とは、SQL文を解析し、[[SQL]] を実行できるように準備したステートメントです。[[プリペアドステートメント]] は、動的にパラメータを指定できます。ステートメントを再利用することにより、SQL文の解析作業を1回だけにでき、パフォーマンスの低下を防げます。
vim: filetype=mediawiki
+
-->
+
[[プリペアドステートメント]] (prepqred statement) とは、[[SQL文]]を解析し、[[SQL]] を実行できるように準備したステートメントです。[[プリペアドステートメント]] は、動的にパラメータを指定できます。ステートメントを再利用することにより、[[SQL文]]の解析作業を1回だけにでき、パフォーマンスの低下を防げます。
+
  
 
'''読み方'''
 
'''読み方'''
行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]]
+
* 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);
}
?>

関連項目