喜悦国际村 
» 游客:  注册 | 登录 | 搜索 | 统计 | 帮助

RSS 订阅当前论坛  

喜悦证交所已经关闭

上一主题 下一主题
     
标题: [问题] mysql_query()l乱码问题,新手卡在这里了  
 
herocj
新手上路
Rank: 1



UID 97211
精华 0
积分 5
帖子 3
金钱 5 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2007-8-19
状态 离线
[广告]: q m
mysql_query()l乱码问题,新手卡在这里了

环境:debian linux系统,phpmyadmin,mysql5,php5.

php,mysql乱码是很常见的,所以安装时,我都是用utf8的,phpmyadmin也是utf8的.
mysql的字符集我全部设成UTF8.
就是在my.cnf下在
[client]和[mysqld]添加,default-character-set=utf8,

我是用zend写PHP的,在首选项那,也是选中了utf8字符集,
但是我在php脚本里,用mysql_query()往mysql里插入数据后,用phpmyadmin查看插入数据中文全是乱码
我用PHP显示中文是没问题的,只是在插数据时出问题了,头痛呀,搞了很久,希望有高人帮帮新手呀.....万分感谢...


代码:
<?php
$connection=mysql_connect("localhost","user","password");
if($connection)
{
$query="drop database Books";
mysql_query($query);
$createsql="create database Books";
if(!mysql_query($createsql,$connection))
echo "create database failed!<br>";
else
{
echo "create database sucessfully!<br>";
mysql_select_db("Books",$connection);
$query="create table Computers ( ";
$query.="id int(3) auto_increment not null primary key, ";
$query.="name char(10) not null, ";
$query.="price float default 0,";
$query.="publish_date date)";
echo $query."<br>";
$result=mysql_query($query);
if(!$result)
echo "create table failed!<br>";
else
{
echo "create table sucessfully!<br>";
$query="insert into Computers(name,price,publish_date) ";
$query.="values ('数据结构',20,'200-1-1')";
echo $query."<br>";
$result=mysql_query($query);
if(!$result)
echo "insert data failed!<br>";
else
echo "insert data successfully!<br>";
$query="update Computers ";
$query.="set price=price+2 ";
$query.="where name='数据结构'";
echo $query."<br>";
$result=mysql_query($query);
if(!$result)
echo "update data failed!<br>";
else "update data sucessfully!<br>";
$query="delete from Computers ";
$query.="where name='数据结构'";
echo $query."<br>";
$result=mysql_query($query);
if(!$result)
echo "delete data failed!<br>";
else
echo "delete data successfully!<br>";
}
}
}
?>
2008-4-21 02:51 PM#1
查看资料  发短消息  顶部
 
airy
新手上路
Rank: 1



UID 90957
精华 0
积分 29
帖子 96
金钱 29 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2007-4-9
状态 离线
[推荐阅读] PHP程序员
首先执行下"SET NAMES 'utf8';"
另外确保你的php带进去变量的编码也是utf-8
2008-4-21 03:29 PM#2
查看资料  发短消息  顶部
 
herocj
新手上路
Rank: 1



UID 97211
精华 0
积分 5
帖子 3
金钱 5 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2007-8-19
状态 离线
[推荐阅读] 在使用了session_set_save_handler的情况下,图形验证码无法获取session值了


QUOTE:
原帖由 airy 于 2008-4-21 03:29 PM 发表
首先执行下"SET NAMES 'utf8';"
另外确保你的php带进去变量的编码也是utf-8
有添加mysql_query("SET NAMES 'utf8");
可是添加进去后连插入数据都不行了,但是PHP还是成功执行,没有错误提示,执行后,数据实际上是没有插入的.
PHP带进去的变量?我在写PHP脚本时,是在utf8编码下写的,应该就是utf8的格式吧?

[ 本帖最后由 herocj 于 2008-4-21 03:45 PM 编辑 ]
2008-4-21 03:39 PM#3
查看资料  发短消息  顶部
 
c1a1o1
版主
Rank: 7Rank: 7Rank: 7
一品带刀护卫


UID 68669
精华 0
积分 8926
帖子 2347
金钱 8926 喜悦币
威望 0
人脉 0
阅读权限 100
注册 2006-2-17
状态 离线
[推荐阅读] PHP.NET 上的中文手册怎么没有了?
数据库 页面 都要这样写



生日礼物送什么www.feichanglipin.cn
生日礼物      补肾
2008-4-21 04:54 PM#4
查看资料  Blog  发短消息  QQ  顶部
 
herocj
新手上路
Rank: 1



UID 97211
精华 0
积分 5
帖子 3
金钱 5 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2007-8-19
状态 离线
[推荐阅读] 记着这幅图吧,永远不要忘记


QUOTE:
原帖由 c1a1o1 于 2008-4-21 04:54 PM 发表
数据库 页面 都要这样写
数据库-----我改了my.cnf,默认就是utf8,我试了在mysql命令行下往表里插入数据,是可以成功显示中文的.
页面-------我在zend的首选项里,选择了UTF8.PHP写显示中文的字符也是没问题的.

好像问题就出在利用mysql_query()插入数据,不知怎么的,会变乱码了.

是在每次mysql_query()前,都要mysql_query("set names 'utf8'");
我试了,没有任何错误提示,可是数据库里死活没有数据插入.....
2008-4-21 05:02 PM#5
查看资料  发短消息  顶部
 
airy
新手上路
Rank: 1



UID 90957
精华 0
积分 29
帖子 96
金钱 29 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2007-4-9
状态 离线
[推荐阅读] chmod在windows 系统中有用么?
跟个mysql_error看看
另外这个是手册上的例子,看看会不会出问题

<?php
// 连接,选择数据库
$link mysql_connect('mysql_host''mysql_user''mysql_password')
    or die(
'Could not connect: ' mysql_error());
echo 
'Connected successfully';
mysql_select_db('my_database') or die('Could not select database');

// 执行 SQL 查询
$query 'SELECT * FROM my_table';
$result mysql_query($query) or die('Query failed: ' mysql_error());

// 用 HTML 显示结果
echo "<table>n";
while (
$line mysql_fetch_array($resultMYSQL_ASSOC)) {
    echo 
"t<tr>n";
    foreach (
$line as $col_value) {
        echo 
"tt<td>$col_value</td>n";
    }
    echo 
"t</tr>n";
}
echo 
"</table>n";

// 释放结果集
mysql_free_result($result);

// 关闭连接
mysql_close($link);
?>
2008-4-22 09:03 AM#6
查看资料  发短消息  顶部
     


  可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题 | 开通个人空间  


 




Powered by Discuz! 6.1.0  © 2001-2010 Comsenz Inc.
Processed in 0.026281 second(s), 6 queries

(冀ICP备05009913号) 管理员:sadly 邮箱/MSN: sadly@phpx.com QQ:824008(长隐) 清除 Cookies - - Archiver - WAP