人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHP+MySQLについて質問です。

PHPから、mysql_query($qsl,$conn)で、
$sql = ”Insert into test_tbl(col1,col2) values (1,’てすと’)”;
というような日本語を含んだInsertを流すと日本語文字列が落ちて登録されます。
インサート失敗などならまだ理解できるのですが、col1に1と入ったレコードはできています。
これは仕様ですか?また、回避する(日本語文字列を登録する)やり方について教えてください。

詳細環境はLinux - Apache/2.0.52 (Unix) PHP/5.0.3 - mysql5.0.2 alpha版です。

●質問者: nakeyouguisu
●カテゴリ:ウェブ制作
✍キーワード:2.0 Alpha Apache Linux MySQL
○ 状態 :終了
└ 回答数 : 6/6件

▽最新の回答へ

1 ● naoya3839
●17ポイント

http://www.yahoo.co.jp/

Yahoo! JAPAN

” ” で囲んだ中の ’’の中身は変数と判断されるからです。

◎質問者からの返答

文字列を明示するにはどうしたらいいのでしょうか。”’’文字列?’’”???

$iCol1 = $_POST[’col1’];

$sCol2 = $_POST[’col2’];

$iCol1 = 555;

$sCol2 = ”てすと”;

//print ($iCol1.$sCol2);

$sql = ”Insert into test_tbl(col1,col2) values (’$iCol1’,’$sCol2’)”;

ちなみに変数に突っ込んでみても、登録されませんでした。


2 ● naoya3839
●17ポイント

回避するには、’’の中身を外出ししましょう。

$tst = ”てすと”;

$sql = ”Insert into test_tbl(col1,col2) values (1,’”.$tst.”’)”;

と記述すればうまくいきます。

◎質問者からの返答

困りました。できません。ちなみに半角文字列なら普通にインサートできます。


3 ● モーリ
●17ポイント

http://www.mysql.gr.jp/mysqlml/mysql/msg/10818

mysql:10818

日本MySQLユーザ会のMLで同じような話題が最近出ていました。

参考URLの1つ目のこのスレッドは役に立ちませんか?

参考URLの2つ目は、やはり日本MySQLユーザ会のFAQです。4.1以降では国際化処理などがそれ以前と変わっているので注意ということが書かれています。

http://www.mysql.gr.jp/frame/modules/bwiki/?FAQ#content_1_14

MyNA Web Site

◎質問者からの返答

MySQL5.0は冒険しすぎでしたか…


4 ● くまっぷす
●17ポイント

外していたらすみませんが、PHPのコンパイル時にマルチバイト文字対応のオプションは設定されていますか?

--enable-mbstring

--enable-mbregex

あとひょっとすると

-enable-zend-multibyte

◎質問者からの返答

’--enable-mbstring’ は指定しています。

--enable-mbregex

-enable-zend-multibyte

は指定していません。mySQLを入れ替えるまでダメという段になったらこの辺もトライしてみます。


5 ● pingoo
●16ポイント

http://www.pro.or.jp/~fuji/mysqlman/manual.ja_Charset.html

5.0系列は使ったことがないので見聞きした範囲で。まず、テーブルのカラム型とその長さは文字列に適したもの(型や長さ)になっているでしょうか? 参考URLにはUTF8の場合CHARではなくVARCHARを使えと書いてあるのでそのあたりを確認してみてはどうでしょうか。また、もしサンプルのSQLを実際には間に変数をいれているようだったらinsert文を発行する前にprintf()などしてチェックしてみるのもいいかもしれません(すでにやっているとは思いますが念のため)。

◎質問者からの返答

私も始めてMySQLを使うのでよくわかっていませんが、さすがにそこら辺は大丈夫です。

ちなみに、TelnetでMySQLコマンドを打ってみたのですが日本語が打てませんでした。

やはり根本的問題ですかね。PHP連携以前の問題のようです。

+-------+-------------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+-------+-------------+------+-----+---------+-------+

| col1 | int(5) | YES | | NULL | |

| col2 | varchar(20) | YES | | NULL | |

+-------+-------------+------+-----+---------+-------+


1-5件表示/6件
4.前の5件|次5件6.
関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ