• 締切済み

getがらphpに日本語を送ったとき化け文字に

<?php ・・・・・・・・ $mousikomi_hi1 = $_GET["mousikomi_hi1"]; $name =$_GET["name"];// "田中"; $sql = "SELECT $mise.kokyaku_no FROM $mise WHERE name='$name' AND DATE_FORMAT(mousikomi_hi1,'%Y/%m/%d') ='$mousikomi_hi1'"; mysql_query("set names utf8"); $rows = mysql_query($sql, $sv) or die("mysql query Error"); $row = mysql_fetch_array($rows, MYSQL_ASSOC); ・・・・・・・・・ ?> var mousikomi_hi1 = $F("mousikomi_hi1"); var name = document.addE.name4.value; //alert(name); xhrObj.open("get", "add_meigara.php?hannbaitenn="+hannbaitenn+"&mousikomi_hi1="+mousikomi_hi1+"&name="+name); getがらphpに日本語を送ったとき $name =$_GET["name"] に化け文字?(□/□□)になり SQLの検索ができません 直接 $name = "田中";とすると 検索できます 初心者で、あまりわかりませんが、よろしくお願いします。

  • PHP
  • 回答数1
  • ありがとう数0

みんなの回答

回答No.1

文字コード

関連するQ&A

  • PHP+MySQLで文字化けします

    PHPでMySQLに接続して以下のように テーブルの作成・そのテーブルにInsertをすると文字化けします。 PHPサーバーの文字コードはEUC-JP、MySQLの文字コードはlatin1です。 PHPのバージョンは5.04でMySQLのバージョンは4.1.20です。 無料レンタルサーバーなので詳細な設定は変更できません。 <?php // データベースに接続し、選択する mb_language('Japanese'); mb_internal_encoding('UTF-8'); mb_http_output('UTF-8'); $link = mysql_connect('localhost',"user","password") or die('Could not connect: ' . mysql_error()); echo 'Connected successfully'; mysql_select_db('user') or die('Could not select database'); mysql_query("SET NAMES UTF-8",$link); // SQL クエリを実行する $name = 'test'; $query = "CREATE TABLE IF NOT EXISTS `$name` ( `id` varchar(50) primary key, `name` varchar(50), `pw` varchar(50) );"; $result = mysql_query($query) or die('Query failed: ' . mysql_error()); $query = "INSERT INTO $name (id, name) VALUES('test', 'テスト');"; $mojicode = mb_detect_encoding($query); $query = mb_convert_encoding($query, "UTF-8", "$mojicode"); $result = mysql_query($query) or die('Query failed: ' . mysql_error()); // HTML に結果を出力する echo "<table>\n"; while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) { echo "\t<tr>\n"; foreach ($line as $col_value) { echo "\t\t<td>$col_value</td>\n"; } echo "\t</tr>\n"; } echo "</table>\n"; // 結果セットを開放する mysql_free_result($result); // 接続を閉じる mysql_close($link); ?> まだまだPHP、MySQL共に技術が未熟なため 説明不足な部分が多々あるかと思いますがご教授お願いします。

    • ベストアンサー
    • PHP
  • phpからMySQLへの日本語文字化けについて

    phpからMySQLへの日本語文字化けについて こんにちは。お分かりの方は教えてください。 現在、「ハッスルサーバー」を利用しwebのphpからMySQLサーバーへの 情報登録画面を作成しています。 登録内容で数値やメールアドレスなどの「1バイト文字」ですと 問題ないのですが、日本語の「2バイト文字」ですと文字化けが 発生してしまいます。 phpやMySQLに知識が無いため色々と調べて試したのですが 正しく登録できませんでした。 試した結果とサーバー/DBの状況は以下の通りです。 ※サーバー/DB ・バージョン:5.0.90-log ・文字セット:UTF-8 Unicode (utf8) ・接続照合順序:utf8_general_ci ・種別:MyISAM ・Variable_name:Value ・character_set_client:utf8 ・character_set_connection:utf8 ・character_set_database:utf8 ・character_set_filesystem:binary ・character_set_results:utf8 ・character_set_server:utf8 ・character_set_system:utf8 ・character_sets_dir:/usr/local/share/mysql/charsets/ ※phpファイルにて試した設定 //接続 $objCon = mysql_connect(C_SERVER, C_USER, C_PASSWORD); //文字コード // mysql_query("SET NAMES SJIS"); ←文字コードを左の2パターンで // mysql_query("SET NAMES UTF8"); ←どちらかに切り替えて実行しました。 //データベース $objSecDB = mysql_select_db(C_DB_NAME); //**********SQL(Insert)**********// $strSql = ""; $strSql = $strSql . "Insert Into XXXXX "; $strSql = $strSql . "("; $strSql = $strSql . "KeyNo,"; $strSql = $strSql . "E_Mail,"; $strSql = $strSql . "Title"; $strSql = $strSql . ") "; $strSql = $strSql . "Values "; $strSql = $strSql . "("; $strSql = $strSql . " " . mysql_real_escape_string($intKeyNo) . ", "; //KeyNo $strSql = $strSql . " " . mysql_real_escape_string($strEmail) . ", "; //E_Mail $strSql = $strSql . "'" . mysql_real_escape_string($strTitle) . "' "; //Title $strSql = $strSql . ")"; //SQL発行 $blnRet = mysql_query($strSql); ・上記のソース内に記しましたが文字コードを2パターン切り替えて  実行しましたが文字化けや空文字が登録されました。 どなたか対処方法をお分かりの方はお教えください。 よろしくお願いします。

    • ベストアンサー
    • MySQL
  • phpMyAdminで文字化け

    下記の質問者と同じ状態「UTF8のPHPコードから日本語をINSERTするとphpMyAdmin上で文字化けしてしまう」になっています。 http://oshiete.nikkeibp.co.jp/qa3749280.html?ans_count_asc=1 そこでinsertの前に    $sql = 'set names utf-8';    mysql_query($sql); を挿入したいのですが、どこにどのように挿入したらいいのかわかりません。私の場合は以下のどこに挿入すればいいのでしょうか? // SQL実行 function db_query($sql, $conn) { $res = mysql_query($sql, $conn); return $res; } ~中略~ $sql = "INSERT INTO table1 ("; $sql .= " name, "; $sql .= " address, "; $sql .= " date "; $sql .= ") VALUES ("; $sql .= "'" . $name . "',"; $sql .= "'" . $address . "',"; $sql .= "'" . $date . "'"; $sql .= ")"; $res = db_query($sql, $conn); if ($res) { return "<p>成功</p>"; } else { return "<p>失敗</p>"; }

    • ベストアンサー
    • PHP
  • php5+Mysql5による条件検索とその表示方法が上手く動作しないのでどなたかご指摘をお願いします。

    phpにて条件検索を行っているのですが、『where』以下を$変数にすると動かなくなってしまいます。記述部分で何が間違っているのでしょうか? 以下記述↓ <? $link = db_con(); //←DB接続 $sql = "select * from tbl where id = '" . mysql_real_escape_string( $_GET['id'] ) . "' and name like '%" . mysql_real_escape_string( $_GET['name'] ) . "%' "; $result = mysql_query( $sql ) ; $num_rows = mysql_num_rows( $result ); ?> ここまで↑ を下記のように『where』以下を$変数にして代入 $変数した場合↓ <? $where .= "id = '" . mysql_real_escape_string( $_GET['id'] ) . "' and name like '%" . mysql_real_escape_string( $_GET['name'] ) . "%' "; $link = db_con(); //←DB接続 $sql = "select * from tbl where $where "; $result = mysql_query( $sql ) ; $num_rows = mysql_num_rows( $result ); ?> ここまで↑ どなたかご指摘をお願いします。

  • 文字化けするのはなぜですか

    MySQL5.0とPHP5です。 ただのINSERT文です。 $sql=" INSERT INTO meibo (name,sexes,pref,email,comment) VALUES (\"$name\",$seib,$chiiki,\"$email\",\"$iken\")"; $rst = mysql_query($sql,$con)or die('Query failed: ' . mysql_error()); 結果、 Query failed: Unknown column '髢「譚ア' in 'field list' '髢「譚ア'などと変な文字が表れるのは、何処がおかしいからなのでしょうか? 基本的な設定でしょうか? どなたかよろしくお願いします。

    • ベストアンサー
    • PHP
  • 【PHP・MySQL】一文字だけ抜き出したい

    php・MySQL初心者です。 何とかここまで自力でやってこれたのですが、もうお手上げで…。 サンプルコードを解析し、部分的に理解しながら進んでる状態です。 やりたいことは、 「ユーザーが入力した文字列の最後の1文字だけを抜き出し、データベースに代入する」です。 ←(2) ちなみに、 「ユーザーが入力した文字列をそのまま、データベースに代入する」はできました。←(1) 参考に、(1)のソースコードの一部を書きます。 ------------------------------------------- 『main.php』 <form action="result.php" method="POST" enctype="multipart/form-data"> <input type="hidden" name="MAX_FILE_SIZE" value="<?= $file_maxsize ?>"> タイトル:<INPUT type="text" name="title" size="50"><br> コメント:<INPUT type="text" name="comment" size="50"><br> <input type="submit" value="送信"> </form><hr> ------------------------------------------- 『result.php』 $comment = @trim($_REQUEST['comment']); //※ $query = "insert into main_t (comment, last)" . " values ('$comment', '$last')"; $result = mysql_query($query); ------------------------------------------- だいたいこんな感じで(1)は出来ました。 (関係がありそうなところだけを抜き出したつもりです…) 『main.php』で出力して確認もしました。 (2)の現状の私のコードを書きます。 ------------------------------------------- 『result.php』 $x = mysql_query("select right('$title', 1)"); $last = mysql_fetch_assoc($x); ------------------------------------------- これを(1)の //※  の部分に記述してみましたが、うまくいきません。 出力するとなぜか「Ar」と出てきます…泣 『select right('いちもじ', 1)』で『じ』とちゃんと右一文字が取り出せるのをbatファイル?みたいなので確認しました。 このSQL文をPHP内で行いたいのですが、やり方がわかりません…。 (そもそも根本的に間違っているのでしょうか…) $x = mysql_query("select * from ○○ where 条件"); $last = mysql_fetch_assoc($x); みたいにfromで検索先や条件を指定して得た「配列」を取得し、表示する方法はネット検索で沢山見つかったのですが、fromやwhereを使わず、結果も配列ではなく1つだけ得られるような場合は、どうすればよいのでしょうか? わかりづらい文章ですみません; 難しい質問かとは思いますが、PHPやMySQLに詳しい方がいましたら、是非ともご教授いただけたらと思います。 よろしくお願いいたします。

  • 「表」などの文字化け

    MySQLとPHPで携帯サイトを作成しています。 フォームから受け取ったデータに「表」の文字が入っていた場合、文字化けしてしまいます。 MySQLのバージョンは4.0.27 文字コードはEUC-JP固定で変更できません。 携帯サイトのため表示はShift-jisです。 mysql_query("SET NAMES sjis"); //フォームから受け取ったデータが「表示」 $str = "表示"; $sql="INSERT INTO DBNAME VALUES('$str')"; mysql_query($sql); としてそのデータを表示させた場合「表示」が侮ヲとなってしまいます。 ご教授お願い致します。

    • ベストアンサー
    • PHP
  • MySQL 文字化けについて(PHP)

    いつもお世話になっております。 PHPを使用してMySQLからデータを出し入れする際に文字化けが発生し原因がわからず、大変困っております。 MySQL 4.1.18(クライアント 4.1.21) MySQL文字セット UTF-8 Unicode (utf8) 様々なHPを検索して、下記のような一文を入れれば大丈夫と思ったのですが、それでも文字化けは改善されませんでした。 mysql_query("SET NAMES ujis"); 上記文はmysql_connectの直後に記述しております。 INSERT文、SELECT文どちらに不備があるのかわかりません。 ご教授お願い致します。 記述プログラム:(INSERT文) /********************************* * MySQL接続 ********************************/ // DB Connect $db = db_connect(); // DB Select select_db($db); // Set Names mysql_query("SET NAMES ujis"); /********************************* * INSERT文 ********************************/ $sql = "insert into T_YOYAKU values ('1','A','1','あいうえお')"; mysql_query($sql) 省略・・・ 記述プログラム:(SELECT文) /********************************* * MySQL接続 ********************************/ // DB Connect $db = db_connect(); // DB Select select_db($db); // Set Names mysql_query("SET NAMES ujis"); /********************************* * INSERT文 ********************************/ $sql = "select * from T_YOYAKU"; if ( $rs = mysql_query($sql) ) {

    • ベストアンサー
    • MySQL
  • mysqlからphpに表示ですべての項目を出したい

    phpとmysqlの勉強をしているのですが、出したい項目がでてきてくれません。 今mysqlでidとnameとpriceの項目を作っているのですが、以下だとどうしてもnameしか出てきてくれません。 どうすれば3つの項目がでてくれますでしょうか? よろしくお願いします。 <?     mysql_connect('localhost' , 'root' , '') or die(mysql_error());     mysql_select_db('db1'); mysql_query('SET NAMES UTF8'); $sql="SELECT * FROM syouhin"; $res=mysql_query($sql); $options=""; while($row = mysql_fetch_array($res,MYSQL_ASSOC)){ $options.="<input type=\"radio\" name=\"syouhin1\" value='{$row['id']}' checked>        {$row['name']}\n<br>"; } $select="{$options}</select>\n";     print $select; ?>

    • ベストアンサー
    • PHP
  • phpで複数検索語をテーブル上の複数項目を対象

    php とmysqlの環境で作ってます。 以前、教えていただいた http://blog.olivesystem.com/824.html のサイトを参考に検索キーワードをテーブル上の複数の項目にまたがって検索したい と考え以下のように書いてみましたが、、エラーとなってしまうので、、、 アドバイスいただければと考えております。 ・実現したいこと 検索窓に 半角や全角で間を空けた入力キーワードをand検索とし テーブル上の複数の項目を参照して検索結果を得たい 例: 「バナナ りんご 千」で検索された場合 テーブルの内容 name setumei sanchi バナナ 長い 東京 りんご 丸い 青森 スイカ 丸い 千葉 このテーブルの3つの項目を参照して検索し、実現したいことが正しく動けば。。 検索結果数 3件 となる。 理由:nameに2件 sanchiに1件 該当キーワードが存在するため ・phpの内容 *getでキーワードを取得している状態以下を書いてます。 $keywd がGETで取得したキーワードが代入されます。 試しに2つ項目で動かないか?!書いてみた状態です。 $query = "SELECT * FROM item WHERE"; if($keywd){ $str = array(" "," ", " and ", " AND "); $keywd = str_replace($str, " ", $keywd); if(stristr($keywd, " ")){//複数キーワードでの検索 $ex = explode(" ", $keywd); $count = count($ex); for($i=0; $i<$count; $i++){ if($i!="0"){ $keyand = $keyand." and"; $keyor = $keyor." or"; } $keyand = $keyand." name LIKE '%{$ex[$i]}%'"; $keyor = $keyor." sanchi LIKE '%{$ex[$i]}%'"; $sql = $keyand.$keyor; echo $sql;//内容確認 } }else{//単体キーワードでの検索 $sql = " name LIKE '%{$keywd}%'"; } } $query1 = $query.$sql; $result = mysql_query($query1, $db ); $num = mysql_num_rows($result); echo "検索結果は "."<span style=\"font-size:30px;\">".$num."</span>"."件です。<br>"; ←ここがline111となります。 ・表示されたエラー Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/users/xxxx/result.php on line 111 ・echoで確認した内容 「ソーラ o」で検索した状態 name LIKE '%ソーラ%' Description LIKE '%ソーラ%' name LIKE '%ソーラ%' and name LIKE '%o%' Description LIKE '%ソーラ%' or Description LIKE '%o%' よろしくお願いします。

    • ベストアンサー
    • PHP

専門家に質問してみよう