忘れそうなのでメモ
セキュリティはどうなのか分からないけど、一応動いたので
PHP 7からmysql
は使えなくなり、mysqli
もしくはPDO
を使うのか、はたまた手続き型
やオブジェクト指向型
初心者には訳が分からないです
※説明するつもりはないです
マジで、検索すれば人それぞれ色々な方法があるし・・・
では本題、ここではmysqli
とプリペアステートメント
を使います
#MySQLに接続
<?php
// ホスト名・MySQLユーザ名・パスワード・
データベース名は各自で
$mysqli = new mysqli('ホスト名', 'MySQLユーザ名', 'パスワード', '
データベース名');
// エラー発生したら終了
if ($mysqli->connect_error){
exit();}
// 文字コード指定
$mysqli->set_charset("utf8");
#INSERT
// テーブル名、フィールド名はそれぞれで。フィールドの数は一個のみでも何個でもかません。
// VALUESのあとにフィールド名と同じ順で入れたい値を書きます。変数は入れられないので、?に置き換えてください。
// 変数でなければ数字や文字、時間now()はここにそのまま入れられます
$sql = "INSERT INTO テーブル名 (field1,field2,field3) VALUES (?,1,now())";
// $sqlに入れなくても構いません。条件があるときには役立ちます
$stmt = $mysqli->prepare($sql);
// パラメータに変数を入れます
// 最初に型指定文字を。次に変数を入れます
$stmt->bind_param('is', $tid,$screen_name);
// 最後に実行
$stmt->execute();
型指定文字についてはこちら
PHP_ mysqli_stmt__bind_param - Manual.html
#UPDATE
INSERTと同じようなものです
// フィールドは区切ればいくつでも可。もちろん、WHEREの中に?も可
$stmt = $mysqli->prepare("UPDATE テーブル名 SET field1 = now() WHERE id=?");
// 変数代入
$stmt->bind_param('i', $id);
// 実行
$stmt->execute();
#SELECT
$stmt = $mysqli->prepare("SELECT field1,field2,field3 FROM テーブル名 WHERE id=?");
$stmt->bind_param("i", $id);
$stmt->execute();
// 結果をバッファに保存
$stmt->store_result();
// 結果を変数に代入
$stmt->bind_result($field1,$field2,$field3);
// 結果の行数
$row_cnt = intval($stmt->num_rows);
忘れてた
// 最後に使うDB接続を閉じるこれ
$mysqli->close();
以上。
DELETEのとき書いてないけど同じような感じなのかな?まだ使ってないから分からないけど。
他のサイトももっと紹介したいです
あとで追記します。たぶん・・・
###参考
PHP_ mysqli__prepare - Manual.html
他にもたくさんの先人の方々の知恵