データベースに接続して挿入、データ取得するサンプル

この記事の関数は下記の記事からclass化を解いて使用しています。
SQLインジェクションに対応!データベース接続クラス

//データベース接続情報の連想配列を作成
$db_info_array = array(
	"sql"=>"mysql",
	"host"=>"localhost",
	"dbname"=>"sample_db",
	"user"=>"root",
	"password"=>"",
	"charset"=>"utf8"
);

sample_dbは下記の記事で見本で作成したものです。
PHPMyAdminの立ち上げからDB作成、テーブル作成のやり方【XAMPP】

//データベースに接続
$connect = setDBConnect($db_info_array);

データベースに挿入するサンプル
※日本語を挿入するにはエクリプスの編集->エンコードの設定->その他->UTF-8を選択して保存してください。

$sql = "insert into test (number,string) values(?,?)";
$res = insert($connect,$sql,array(8,"testdato"));
if($res == ""){
	echo "NG insert";
}else{
	echo "OK insert";
}

データベースからデータをとってくるサンプル

$sql = "select * from test where number = ?";
$array=array(5);
$res_data = select($connect,$sql,$array);

if($res_data == ""){
	echo "NG select or NOT data";
}else{
	echo "OK select";
        print_r($res_data);
}

使っている関数一覧

function setDBConnect($db_info_array){
	$options = array(
		PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES '.$db_info_array['charset'],
		PDO::ATTR_PERSISTENT => true,
	);
	$link = $db_info_array['sql'].':host='.$db_info_array['host'].';dbname='.$db_info_array['dbname'];
	$user = $db_info_array['user'];
	$password = $db_info_array['password'];
	try{
		$con = new PDO( $link, $user, $password, $options );
		if ($con == null){
			throw new PDOException( 'CONNECT LOOSE' );
		}
	}catch ( PDOException $e ){
		print( 'Error:'.$e->getMessage() );
		die();
	}
	return $con;
}

function dbmethod($con,$sql ,$array){
	$stm = $con->prepare( $sql );
	for( $i = 0; $i < count( $array ); $i++ ){
		$stm->bindParam( $i+1 , $array[$i] , PDO::PARAM_STR );
	}
	$result_data = $stm;
	$flag = $stm->execute();
	if( ! $flag ){
		$result_data = "";
	}
	$con = NULL;
	return $result_data;
}

/*
戻り値が""なら挿入失敗
*/
function insert( $con, $sql , $array ){
	return dbmethod($con, $sql , $array );
}

function select($con, $sql ,$array=array()){
	$result_data = dbmethod( $con, $sql , $array );
	$array = array();
	while( $date = $result_data->fetch( PDO::FETCH_ASSOC ) ){
		$array[] = $date;//フィールドごと
	}
	return $array;
}

動作環境一覧
phpMyAdmin::バージョン情報: 4.9.2, 最終安定バージョン: 4.9.4
Apache::バージョン情報: 2.4.41 (Win64)
PHP::バージョン情報: 7.2.26

シェアする

  • このエントリーをはてなブックマークに追加

フォローする