ホームページ  >  記事  >  バックエンド開発  >  PHP データベース エントリが文字化けする解決策のアイデア

PHP データベース エントリが文字化けする解決策のアイデア

WBOY
WBOYオリジナル
2016-06-13 13:25:26815ブラウズ

PHP がデータベースに文字化けを入力します
データベースのエンコーディングは「utf8_bin」で、フィールドのエンコーディングも「utf8_bin」です。PHP がデータベースに中国語を入力すると、常に文字化けします。また、テキストを含むphpファイルを編集し、utf-8として保存しましたが、問題はまだ解決されていません。以下はコードです

PHP コード
<!--

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

-->

<?php require_once('../Connections/internal.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  if (PHP_VERSION < 6) {
    $theValue = get_magic_quotes_gpc() ?ストリップスラッシュ($theValue) : $theValue;
  }

  $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  スイッチ ($theType) {
    「テキスト」の場合:
      $theValue = ($theValue != "") ? 「」。 $theValue 。 "'" : "NULL";
      壊す;    
    「長い」場合:
    ケース "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      壊す;
    「ダブル」の場合:
      $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
      壊す;
    ケース「日付」:
      $theValue = ($theValue != "") ? 「」。 $theValue 。 "'" : "NULL";
      壊す;
    ケースが「定義されている」:
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      壊す;
  }
  $theValue を返します。
}
}

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
  $editFormAction .= "?" 。 htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
  $insertSQL = sprintf("INSERT INTO ディスカッション (a, content) VALUES (%s, %s)",
                       GetSQLValueString($_POST['a'], "テキスト"),
                       GetSQLValueString($_POST['content'], "text"));

  mysql_select_db($database_internal, $internal);
  $Result1 = mysql_query($insertSQL, $internal) または die(mysql_error());
}

mysql_select_db($database_internal, $internal);
$query_Recordset1 = "SELECT * FROM ディスカッション";
$Recordset1 = mysql_query($query_Recordset1, $internal) または die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<頭>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>ディスカッション</title>
</head>


<テーブル幅="100%" ボーダー="1">
  <tr bgcolor="#99CC33">
    <td width="8%">WHO</td>
    <td width="84%">在说什么</td>
    <td width="8%">楼</td>
  </tr>
   $result1 = mysql_query("SELECT * FROM ディスカッション where id $a</td>
  <td>$content</td>
  <td>$id</td>
    </tr>
  ";
  }
?>
</テーブル>
<form action="<?php echo $editFormAction; ?>" Method="POST" name="form1" id="form1">
  <p>
    <label for="content"></label>
    <textarea name="content" id="content"cols="90" rows="5"></textarea>
  </p>
  选择你的身份
  <label for="a"></label>
  <名前="a" id="a"を選択>
    <オプション>A</オプション>
    <オプション>B</オプション>
    <オプション>C</オプション>
    <オプション>D</オプション>
  </選択>
  <p>
    <input type="submit" name="button" id="button" value="提交" />
  </p>
  <input type="hidden" name="MM_insert" value="form1" />
</フォーム>
<p> </p>
</ボディ>
</html>
<?php
mysql_free_result($Recordset1);
?>




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