概要
閲覧数:1067
投稿日: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