久々にMySQL弄ってたらエラーですorz
< ?php
$host = "localhost";
if (!$conn = mysql_connect($host, "user", "password")) {
die("データベース接続エラー");
}
mysql_query("SET NAME utf-8", $conn);
mysql_select_db("hyoutei", $conn);
$name = mysql_real_escape_string($_POST['name']);
$price = mysql_real_escape_string($_POST['price']);
if ($name == "" || $price == "") {
exit ("エラー:メニュー名と値段を入力してください。");
}
$sql = "INSERT INTO menu_table(name, price) VALUE('$name','$price')";
mysql_query($sql, $conn) or die("登録できませんでした");
print (mysql_affected_rows() . "件を登録しました");
?>
とまあ、こんなスクリプトなんですが…
登録でーきーなーいー
SQLエラー文を出してみることにしました。
if(!mysql_query($sql, $conn)){
echo mysql_errno($conn).": ".mysql_error($conn)."
\n";
}
1366: Incorrect string value: '\xE9\x81\xA9\xE5\xBD\x93...' for column 'name' at row 1
ググってみると、どうも文字コードの問題みたいです。
コマンドプロンプトで
show variables like '%char%';
をしながら色々と文字コードを変えてみました。
で、最終的に
character_set_client | sjis
character_set_connection | utf8
character_set_database | utf8
character_set_filesystem | binary
character_set_results | sjis
character_set_server | utf8
character_set_system | utf8
ディレクトリは省略
となりました。
うん、結果は変わりません。
テーブルの文字コードを変えてみたって、PHPの文字コード変えてみたって駄目なんだorz
でもコマンドプロンプトから直接SQL文を実行すると上手くいくんだorz
何だって言うんだよおおおおお!!(つд`)。*.
だ、誰かHELP ME…
てかさ、他のスクリプトは日本語で登録とかちゃんとできるんだけど…
何なの本当o=排z

0