概要
閲覧数:1303
投稿日:2014-10-12
更新日:2014-10-12
複数テーブルロック
・テーブル全体にロックをかける
・MySQL独特の排他制御
array_map()
・第1引数+第2引数
コード
$array = array(test_tables1, test_tables2, test_tables3);//適用配列
//$array = test_tables;//string(29) "LOCK TABLES test_tables WRITE"
lock_tables($array);
function lock_tables($array){
$sql = "LOCK TABLES ";//「LOCK TABLES」構文を使ってロック
if(is_array($array)){//$arrayが配列の場合、
function add_WRITE($str) {//コールバック関数
return $str . " WRITE";
}
//print_r(array_map("add_WRITE", $array));
$array=array_map("add_WRITE", $array);
print_r($array);
$sql .= implode(", ", $array);//「,」で区切って格納
}else{//$arrayが配列じゃなかったら(引数がテーブル名だけの場合)、
$sql .= $array . " WRITE";//文字列を連結して格納
}
print_r($sql);
}結果
Array
(
[0] => test_tables1 WRITE
[1] => test_tables2 WRITE
[2] => test_tables3 WRITE
)
LOCK TABLES test_tables1 WRITE, test_tables2 WRITE, test_tables3 WRITE