首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > PHP >

PHP录入数据库乱码解决思路

2012-07-15 
PHP录入数据库乱码数据库编码是“utf8_bin”字段的编码也是“utf8_bin”,php向数据库录入中文时总是乱码!php文

PHP录入数据库乱码
数据库编码是“utf8_bin”字段的编码也是“utf8_bin”,php向数据库录入中文时总是乱码!php文件也用文本编辑并保存为utf-8的了,问题还是没有解决。下面是代码

PHP code
<?php require_once('../Connections/internal.php'); ?><?phpif (!function_exists("GetSQLValueString")) {function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") {  if (PHP_VERSION < 6) {    $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;  }  $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);  switch ($theType) {    case "text":      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";      break;        case "long":    case "int":      $theValue = ($theValue != "") ? intval($theValue) : "NULL";      break;    case "double":      $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";      break;    case "date":      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";      break;    case "defined":      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;      break;  }  return $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 discuss (a, content) VALUES (%s, %s)",                       GetSQLValueString($_POST['a'], "text"),                       GetSQLValueString($_POST['content'], "text"));  mysql_select_db($database_internal, $internal);  $Result1 = mysql_query($insertSQL, $internal) or die(mysql_error());}mysql_select_db($database_internal, $internal);$query_Recordset1 = "SELECT * FROM discuss";$Recordset1 = mysql_query($query_Recordset1, $internal) or 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"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>discuss</title></head><body><table width="100%" border="1">  <tr bgcolor="#99CC33">    <td width="8%">WHO</td>    <td width="84%">在说什么</td>    <td width="8%">楼</td>  </tr>  <? $result1 = mysql_query("SELECT * FROM discuss where id < 99 order by id ASC ");     while($row1=mysql_fetch_array($result1))  {$id=trim($row1['id']);$a=trim($row1['a']);$content=trim($row1['content']);  echo  "  <tr>  <td>$a</td>  <td>$content</td>  <td>$id</td>    </tr>  ";  }?></table><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>  <select name="a" id="a">    <option>A</option>    <option>B</option>    <option>C</option>    <option>D</option>  </select>  <p>    <input type="submit" name="button" id="button" value="提交" />  </p>  <input type="hidden" name="MM_insert" value="form1" /></form><p>&nbsp;</p></body></html><?phpmysql_free_result($Recordset1);?> 



[解决办法]
在所有 mysql_select_db 函数后面加上
mysql_query("set names utf8");

热点排行