ホームページ  >  記事  >  バックエンド開発  >  PHPによってデータベースに挿入された文字化けしたデータに関連する問題

PHPによってデータベースに挿入された文字化けしたデータに関連する問題

WBOY
WBOYオリジナル
2016-06-13 13:42:52938ブラウズ

PHP がデータベースに文字化けしたデータを挿入する問題

PHP コード
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--><html>

<head>
book entry result

</head>

<body>
<h1>book entry result</h1>
<?php
header("content-type:text/html;charset=utf-8");
$isbn=$_POST['isbn'];
$author=$_POST['author'];
$title=$_POST['title'];
$price=$_POST['price'];
if(!($isbn||$author||$title||$price))
{
    echo"请确认每行都输入数据";
    exit;
}
if(!get_magic_quotes_gpc())
{
    $isbn=addslashes($isbn);
    $author=addslashes($author);
    $title=addslashes($title);
    $price=addslashes($price);
}
mysql_query('set names utf8');
@$db=new mysqli('localhost','root','root','books');


if(mysqli_connect_error())
{
echo "链接数据库不成功";
    exit;
}
header("content-type:text/html;charset=utf-8");
$query="insert into books(isbn ,author ,title ,price)
values('".$isbn."', '".$author."', '".$title."', '".$price."')";
$result=$db->query($query);
if($result){
echo $db->affected_rows." 本书数据录入成功。";
}else{
echo"数据录入失败。";
}

?>
</body>
</html>



header() を使用して PHP ページを utf-8 に変更しました
データベースのエンコーディングと table それらはすべて utf-8


-----解決策---------
議論
mysql_query('set names utf8'); は mysqli と一致しません。$db->query('set names utf8');
あなたはどこで挿入されたデータが文字化けしていることに気づきましたか? phpmyadmin?

------解決策---------
プログラムのエンコードが正常である状況に遭遇しましたとページ phpmyadminの文字化け以外は正常に表示されています。 phpmyadminの設定が正しくないのが原因ですが、変更方法がわかりません。データベースの内容を読み取り、ページに表示する簡単な小さなプログラムを作成できます。
------解決策---------
プログラムのコーディングに問題はありませんか?
------解決策-----------
Mysql_connnet(……) を最初に実行する必要があります。リンク適切なデータベースは mysql_query("set names utf-8"); を実行しています。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。