これでデータベースができました。データベースは万能の utf-8 照合でエンコードされます。実際の照合は utf8 です。エンコーディングが何であるかはわかりません。それは別の質問です。
次に、データベースからデータを取得するプログラムを作成しました。
<?php
require_once('convertArraytoJson.php');
require_once('config.php');
mysql_connect ( "localhost", $databaseuser, $databasepassword);
mysql_query("SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'");
@mysql_select_db ($databasename) or die ( "Unable to select database" );
$data=$_GET['id'];
$query="SELECT * FROM `tabletes` where id = '".$data."'";
$data = mysql_query($query);
while (true){
$info = mysql_fetch_array ( $data, MYSQL_ASSOC );
if ($info == false) {
break;
}
//$output[]=$info;
$output[$info['ID']]=$info;
unset ($output[$info['ID']]['ID']);
}
$result = array2json($output);
echo $result;
?>
データベースの内容は次のようになります。
ここで、次のようにして関数を呼び出します (表示するには画面を拡大する必要があります)。
http://localhost/domainname/api/test2.php?id=jr-東北本線-荒川橋梁__35.79_139.72
うまくいきません。
ただし、 $_GET を使用せず、コードに日本語の文字を直接入力するだけで機能します。
だから私が変更した場合:
$data = $_GET['id']
に
$data = 'jr-東北本線-荒川橋梁__35.79_139.72'
物事はうまくいっています。
もちろん、ID をハードワイヤしたくはありません。$_GET['id'] 経由でアクセスしたいのです。私は何をすべきか?