![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
PHPから、MySQL内に日本語名のテーブルを作成する事ができません。
いつも、お世話になっております。
小生、現在、WindowsXPSP3上で、Apache2.2.15とMySQL5.1.46とPHP5.2.13を使用し、PHPを勉強している、PHP初心者です。
今回質問させて頂きたいのは、PHPからMySQL内にデータベースを作成後、日本語名でテーブルを作成したいのですが、なぜか作成できません。
PHPのソースは以下の様になっています。
-----mysql.php-----
<?php
//MySQLに接続
$sql = mysql_connect('localhost', 'root', 'root');
if(!$sql){
print("MySQLに接続失敗" . "<br>\n");
mysql_close($sql);
die();
}
else{
print("MySQLに接続成功" . "<br>\n");
}
//DB作成
$create_db = 'CREATE DATABASE HUMAN';
if(mysql_query($create_db, $sql)){
print("DB作成成功" . "<br>\n");
}
else{
print("DB作成失敗" . "<br>\n");
mysql_close($sql);
die();
}
//DB選択
if(!(mysql_select_db("HUMAN"))){
print("DB選択失敗" . "<br>\n");
mysql_close($sql);
die();
}
//文字コードをutfに設定
mysql_query("set names utf-8");
//テーブル作成
$create_table = "CREATE TABLE 人間
(名前 VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
年齢 INT NOT NULL,
身長 VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
体重 VARCHAR(50) CHARACTER SET utf8 COLLATE uft8_general_ci NOT NULL,
職種 VARCHAR(50) CHARACTER SET utf8 COLLATE uft8_general_ci NOT NULL,
ENGINE = MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci;";
if(mysql_query($create_table, $sql)){
printf("テーブル作成成功" . "<br>\n");
}
else{
print("テーブル作成失敗" . "<br>\n");
mysql_close($sql);
die();
}
//テーブルのデータを取得、表示
$select = "SELECT * FROM 人間";
if($result = mysql_query($select, $sql)){
print("データ取得成功" . "<br>\n");
}
else{
print("データ取得失敗" . "<br>\n");
mysql_close($sql);
die();
}
while($getdata = mysql_fetch_assoc($result)){
foreach($getdata as $output){
print($output . "<br>\n");
}
}
//MySQLにCOMMIT文送信
$commit = "COMMIT;";
if(mysql_query($commit, $sql)){
print("コミット成功" . "<br>\n");
}
else{
print("コミット失敗" . "<br>\n");
mysql_close($sql);
die();
}
//MySQLの接続終了
mysql_close($sql);
?>
以上です。
お忙しい中、申し訳ございませんが、先輩方ご教示宜しくお願い致します。
No.2ベストアンサー
- 回答日時:
ズバリ模範解答ではありませんが、私の試してみた限りです。
mysql_query("set names utf-8");を
mysql_query("set names utf8");に修正。
日本語部分をバッククォートで囲む。
ENGINE= の前でかっこが閉じていない。&カンマでつながっている。
$create_table = "CREATE TABLE `名前15` (
`名前` VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`年齢` INT NOT NULL,
`身長` VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`体重` VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`職種` VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL
) ENGINE = MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci;";
これで作成出来ました。
ただ、個人的にはトラブルの元なので日本語は使いたくないです。
(コマンドラインで作ったらテーブルが削除できなくなっちゃいました)
kt_yukaさん、ご回答頂き誠にありがとうございます。
ご教示頂いた通り、コードを訂正し直し、memphisさんにご教示頂いた方法でphp.iniを書き直し、apacheを再起動しphpソースを実行してみたところ、見事に日本語のテーブルを作成する事が出来ました!!
ご教示頂き、心より感謝申し上げます!
No.1
- 回答日時:
デフォルトのキャラクタセットをutf8にしましたか?
my.ini を確認して下さい。
memphisさん、ご回答頂き誠に感謝申し上げます。
memphisさんのご教示頂いた通り、php.iniを書き直しapacheを再起動し、コードを書き直してみたところ、見事、日本語のテーブルを作成する事ができました!
ご教示頂き、心から感謝申し上げます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL MySQLのテーブル作成でハイフン - は使用できないのでしょうか? 2 2022/10/21 16:50
- MySQL `picture` varchar(255) のコマンドで間違いないでしょうか? 1 2022/11/21 04:08
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- PHP PostgreSQLからCSV形式でエクスポートする際にカラム内の改行をとる方法 1 2023/02/22 10:05
- MySQL テーブル作成です。どこかのスペルが間違っているか記号など スペースかな? 1 2022/10/01 05:08
- PHP php テーブルが作成できない 1 2022/11/17 23:41
- MySQL php テーブルを作れない 2 2022/11/17 18:22
- MySQL 何にかが違うから エラーなんでしょうね! 2 2022/09/18 05:28
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ボタンのonclick時における関数...
-
PHP+MYSQL IF文の初歩
-
縦に長い<table>でなく横に長い...
-
mysqlからmysqliへの変更点
-
実行時エラー3131 FROM 句の構...
-
テキストボックスに入れた内容...
-
MySQLでデータベースにデータin...
-
SQL文の実行に失敗しました???
-
ResultSetインターフェイスでの...
-
VBAをつかってクエリの情報を抽...
-
syntax errorの原因について
-
codeigniter 複数モデルでトラ...
-
アラートでyes noを作りたいです。
-
SQLで返り値が空とでる
-
SELECT COUNTで取得した結果の表示
-
JAVA SQLServerException 列名 ...
-
例外処理
-
<VB.NET>INSERT文でDBにデータ...
-
VBA ACCESS SQL...
-
データベースに存在するデータ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
phpのエラーについてです
-
テーブルに入っているデータと...
-
sqlから多次元配列に要素を格納...
-
PHPで絞り込み検索結果の件数を...
-
MySQLのデータを使ってプルダウ...
-
XAMMPが起動しません。
-
mysql_fetch_objectのエラー
-
mysql_resultのエラー
-
CSVをダウンロードさせた際、CS...
-
stringaddslashes 半角¥が消える
-
「mysqlclient」の事が分からな...
-
XAMPPで画面が真っ白になります。
-
会員登録したらメールが送られ...
-
PHP+mysqlでSQL文に文字数制限...
-
変数同士の引き算が出来ない
-
連想二次元配列のUNIXTIMEでの...
-
PHP/MySQL SQLエラーについて。
-
PHPでMySQLのレコードを削除したい
-
すいません。
-
インクルードによる不具合
おすすめ情報