Monthly Archives: 4月 2009
XMLを表示できない。
ZendFrameworkの勉強と称して、PHPからXMLを表示しようとしてたわけですが、
XML表示ができずに、以下のようなエラーが出てました。
XML パースエラー: タグの対応が間違っています。終了タグが必要です:
URL: http://zend.hattara.info/Response/
行番号: 11, 列番号: 3:
–^
色々周りの方に確認してもらったりしたら、間違いがボロボロと。。。
- ZendFrameworkでは、Controller部分には、phpの閉じかっこ「 ?> 」は記載しないらしい
- XMLを表示する際には、タグの中はシングルクォートではなく、ダブルクォートを利用するらしい
- 「」は「 ~ ?>」と競合するので、short_open_tagはOffにする必要があるらしい
- charsetをUTF-8にしてるのに、ソースをEUCで記載してたので出たらしい
というあたりがありました。
なので、.htaccessで以下を追加したり各内容を修正したりしました。
php_value short_open_tag “Off”
この辺を全部対応して、どうにか動くようになりました。
コマンドラインで外部サーバのDBをバックアップ
外部にあるDBサーバ(リモートにあるサーバ)からバックアップ(ダンプ)を取りたい。
今回はコマンドラインでサクサクっとやる方法をメモしておきます。
mysqldump -h ホスト名 -u ユーザ名 –databases データベース名 -p > データベース.sql
上記の日本語で書いてある部分は、最後の「データベース.sql」は適当な文字でいいが、
それ以外はDBへの接続情報を入力する。
DBへのGrantなどの接続権限が通っているのが前提ではあります。
そしたら、ローカルにデータベース丸ごとおさめたバックアップ用のSQLファイルができあがります。
MySQLで行番号表示
MySQLで行番号を表示したかったんですが、どうしたものか調べていたら、
無常迅速さんのサイトで
よさげなものを見つけました。
SET @i:=0;
SELECT
(@i:=@i+1) as row_number, a_col, b_col, c_col, d_col
FROM
test_table
ORDER BY
b_col;
みたいな感じにすると、row_numberのカラムに行番号が表示できちゃいました。
これはちょっとありがたい。
レコードで何番目のデータかとか出す時には便利ですね。
MySQLのおすすめ書籍
DB Error: mismatchがでたぞ!!
php経由でMysqlに接続して処理してたときに
なんでか理由がわからないけどエラーがでた。
DB Error: mismatch
試した感じからすると、where句の内容に問題があるようだ。
【エラーが出る例】
select * from table where column != ? ;
※「?」はプレースホルダしてるから。
ちなみにSSH経由でmysqlコマンドで接続して実行するとエラーにならない。
【エラーが出ない例】
select * from table where column <> ? ;
※これだとエラーにならないわけです。
なんでですかね?
phpとの相性?
プレースホルダ絡み?
phpの書き方に問題があった?
ちょっとわからないけど、備忘録として残しておきます。
知ってる人いたら、コメントください。