3
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

PHPでSQL文(クエリ)の実行

Last updated at Posted at 2019-10-09

PHPでSQL文を実行する方法です。

SQLの実行方法を検索したところ、実に様々な方法がありました。
例えば、トランザクション処理の有無、PDO属性の設定、バインド変数の設定などです。
ここでは個人的に分かりやすかった方法を記載します。

#パターン1


$変数='1';

$dbh = new PDO ('mysql:dbname=データベース名;host=ホスト名またはIPアドレス;charset=utf8;',ユーザ,パスワード,PDO属性);
$sql = 'SELECT * FROM liked WHERE カラム名 = :バインド変数';
$変数2 = array(':バインド変数' => $変数);

$stmt =  $dbh -> prepare($sql);
$stmt -> execute($変数2);

echo '結果は'.$stmt->rowCount();

・ブラウザでPHPファイルを確認すると「結果は1」と表示されます。
1は$変数で指定した値です。
・「:変数」はSQLステートメント内の変数値のバインド変数(プレースホルダー)です。
このバインド変数の指定にはいくつかの方法があります。
今回は$変数2でバインド変数の値を格納しています。

以下のような記述でも可能です。


$stmt = $dbh -> prepare($sql);
$stmt -> bindvalue(':バインド変数', $変数);
$stmt -> execute();

#パターン2
file1.php


// 関数の呼び出し
require('file2.php');

// データベース接続情報
$dbh = new PDO ('mysql:dbname=データベース名;host=ホスト名またはIPアドレス;charset=utf8;',ユーザ,パスワード,PDO属性);

// SQL文の作成
$sql = 'SQL文'

$stmt = 関数($dbh, $sql);
$変数 = $smtm -> rowCount();

file2.php


function 関数($dbh, $sql){
$stmt = $dbh -> prepare($sql);
$stmt -> execute();
}
return $stmt;

// returnした¥$stmtをfile1.phpに返します。
// SQL文の実行した結果($stmt)をrowCount()でCountし、$変数に格納します。
3
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?