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し、$変数に格納します。