Displaying posts categorized under

MySQL

PEAR DB でトランザクション機能を使う

DBMS として MySQL を使用している場合は、対象テーブルが InnoDB 形式を使用している場合にのみトランザクションが使用できます。 例えば、指定idのデータを main1_table ⇒ backup1_table main2_table ⇒ backup2_table main3_table ⇒ backup3_table へ複製する場合、途中でエラーが起こった場合に処理を行う直前の状態に戻す方法。 $db->autoCommit(false); $sql = "INSERT INTO main1_table SELECT * FROM backup1_table WHERE id=".$_POST['id']; $res1 =& $db->query($sql); if($db->idError($res1)){ die($res1->getMessage()); } $sql = "INSERT INTO main2_table SELECT * FROM backup2_table WHERE id=".$_POST['id']; $res2 =& $db->query($sql); if($db->idError($res2)){ $db->rollback(); die($res2->getMessage()); } $sql = [...]

MySQL INSERT文 [複数のデータを一発で登録したい]

INSERT INTO table (id,name,title) VALUES(1,’aaa’,’title1′),(2,’bbb’,’title2′),(3,’ccc’,’title3′);

PHPでMySQLの文字バケを直す

WindowsにXAMPPをインストールして、ローカルにて作業している時に文字バケが発生。 MySQLから取得した文字のみが文字バケしていたので、接続後の行に下記を追加する。 //MySQLのクライアントの文字コードをutf8に設定 mysql_query(“SET NAMES utf8″) or die(“can not SET NAMES utf8″); 筆者の場合、PHPもDBも全てUTF-8で作成しているので、上記のようにutf8を指定して直った。

PEAR::DBでよく使うユーザー関数

■SELECT系 // メンバー全員の情報を全て取得(ID昇順) function get_all_member(){ global $db; $sql = “SELECT * FROM member ORDER BY id ASC”; $list = $db->getAll($sql); return $list; } // IDを指定して一人のメンバー情報を全て取得 function get_one_member($id){ global $db; $sql = “SELECT * FROM member WHERE id = $id”; $list = $db->getRow($sql); return $list; } // IDを指定してメールアドレスを取得 function get_mail_address($id){ global $db; $sql = “SELECT mail [...]

MySQLでよく使う命令

■複数のテーブルを結合してデータを取得する SELECT DISTINCT `st`.`id` , `st`.`name` , `st`.`image1` FROM `Staff` AS st INNER JOIN `Schedule` AS sc ON `st`.`id` = `sc`.`staff_id` AND `st`.`flag` =1 AND `sc`.`job_date` < CURDATE( ) LIMIT 0 , 3 [解説] StaffテーブルとScheduleテーブルを結合して、Staffテーブルのidとnameとimage1を3件まで取得する。条件は、StaffテーブルのidとScheduleテーブルのStaff_idがイコールで、Staffテーブルのflagが1で、ScheduleテーブルのJob_dateが今日よりも前の日付であること。 DISTINCT 重複データを取り除く CURDATE 今日の日付と同義語 LIMIT 取得件数制限(上記の場合 結果順で0~3件)