Home > MySQL Archive

MySQL Archive

SELECTとINSERTを1回のクエリで実行する

INSERT INTO [データを入れたいテーブル] SELECT * FROM [データを取りたいテーブル];

 
DBのバックアップなどに結構便利です。

このクエリを実行する際に、
途中でデータの文字コードを変えることできないかな・・・
 

mysql_escape_string

mysql_escape_string(’aaaa’);

でmysql_query で使用するために文字列をエスケープするそうです。

 
仕事ではADODBを使っているので、
PHP関数でのDB接続は知りませんでした。。。
 

文字化け対応のSET NAMESが使えない

前述したMySQLでの文字化け対応で、
SET NAMESを使おうと必死にやってみたのですが、ずっとできませんでした。

その理由は、カラムのデータ型にありました。。。

 
私が作ったテーブルの中で、型に

varbinary
blob

があったのですが、これが悪さをしていたようです。

 
これを

varchar
text

に変更したら、SET NAMESが使えました。。。

 
これに3時間ぐらい費やしたという罠。
 

MySQLの文字化け

仕事ではまってしまったので、備忘録として(苦笑)

 
DBがSJISでPHPもSJISという危険な状態で、
PHP関数mysql_connectでDBと接続するという状況です。

その際に文字化けしてしまったので、
(というか今までなぜ文字化けしなかったのか不思議・・・)
以下の対応をしました。

やりたいクエリ自体を投げる前に、

mysql_query(/*!40101 SET NAMES sjis */, [接続])

 
ああ、びっくりした。。。(苦笑)
 

Home > MySQL Archive

Archives
Tag Cloud
Feeds

Return to page top