ホームページ  >  記事  >  バックエンド開発  >  PHPで中国語の文字を含むテーブル作成ステートメントの実行に失敗しました

PHPで中国語の文字を含むテーブル作成ステートメントの実行に失敗しました

WBOY
WBOYオリジナル
2016-06-23 14:08:27899ブラウズ

$conn = mysql_connect("localhost","root","");
if($conn){
mysql_select_db("test",$conn);
$sql = "テーブルユーザーを作成します
id int( 5) null ではない auto_increment 主キー、
name char(10) not null デフォルト ''、
パスワード char(12) not null デフォルト ''、
age int(3) not null デフォルト 0、
sex char(10) not null デフォルト '男性'、
メール char(50) は null デフォルト ''、
度 char(10) は null デフォルト '' ではありません
);";
$do = mysql_query($sql,$conn);
if( $do){
echo "操作が成功しました"; }
else{
echo "操作が失敗しました";
}else{
echo "サーバーへの接続エラー"
}
上記のコードを実行すると、「操作が失敗しました」が返されます。 」。自分でテストしてみたところ、漢字の問題であることがわかりました。つまり、性別フィールドのデフォルト値は「男性」でした。ただし、$sql のステートメントを cmd で個別に実行すると、テーブルを正常に作成できます。
何が起こっているのかわかりません。専門家が説明してくれることを願っています。


ディスカッションへの返信 (解決策)
文字セットの問題

データベースに接続した後、まず

mysql_query('set names ???') // ??? はプログラム ファイルのエンコーディングです。 (utf-8の場合はutf8と記述する必要があります)


テーブル作成文の後にDEFAULT CHARSET=gbkを追加します

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。