php mysql 数据操作问题

php中文网
发布: 2016-06-23 13:50:48
原创
995人浏览过

求前辈指导!

如图,表里面有2条数据  第一条是在phpMyAdmin插入的,第二条是从php页面插入的
org_name varchar类型  open_time timestamp 类型
php代码如下:
include_once("pay/CommonUtil.php");
include_once dirname(__FILE__).'/db/DbOperation.php';
$db = new DbOperation('z_org');
$org = array(
"org_id" => 2,
"org_name" => "北京市",
"open_time" => time()
);
$db->addObject($org);
$rs = $db->getAll();
var_dump($rs);
?>

问题:
1.从php插入的数据 汉字乱码,时间为0000-00-00 00:00:00
2.查询全表 第一条数据汉字乱码,第二条正常了
array(2) { [0]=> array(3) { ["org_id"]=> string(1) "1" ["org_name"]=> string(3) "???" ["open_time"]=> string(19) "2014-08-23 18:35:18" } [1]=> array(3) { ["org_id"]=> string(1) "2" ["org_name"]=> string(9) "北京市" ["open_time"]=> string(19) "0000-00-00 00:00:00" } } 

AI建筑知识问答
AI建筑知识问答

用人工智能ChatGPT帮你解答所有建筑问题

AI建筑知识问答 22
查看详情 AI建筑知识问答

回复讨论(解决方案)

程序编码是什么?换成和phpmyadmin编码一样的

程序编码是utf-8 ,phpMyAdmin也是utf-8 
度娘说  要在获取数据库连接时update (set names utf_8)
我加上后,运行报错 Fatal error: Uncaught exception 'DB_Exception' with message '更新失败:Unknown character set: 'utf''


('set names utf8')
不是
(‘set names utf_8')

嗯,用utf8试了,这个问题搞定了
现在剩下timestamp问题:time()函数不行,我试了date("Y-m-d h:i:s")
问题是写入的时间为:
array(3) { ["org_id"]=> string(1) "1" ["org_name"]=> string(9) "上海市" ["open_time"]=> string(19) "2014-08-23 18:35:18" } 
array(3) { ["org_id"]=> string(1) "2" ["org_name"]=> string(20) "å??京å¸?" ["open_time"]=> string(19) "0000-00-00 00:00:00" } 
array(3) { ["org_id"]=> string(1) "3" ["org_name"]=> string(9) "重庆市" ["open_time"]=> string(19) "0000-00-00 00:00:00" } 
array(3) { ["org_id"]=> string(1) "4" ["org_name"]=> string(9) "天津市" ["open_time"]=> string(19) "2014-08-23 12:00:31" } 
array(3) { ["org_id"]=> string(1) "5" ["org_name"]=> string(9) "河北省" ["open_time"]=> string(19) "2014-08-23 12:02:34" } 
比正常时间慢了8小时,不知道是不是时区的问题,应该怎么设置?

$org = array(
"org_id" => 2,
"org_name" => "北京市",
"open_time" => 'now()'
);
用数据库的时间函数较好

你 date 得到的时间不对,是因为你的树区没有设置好

我在获取数据库连接的地方加上了date_default_timezone_set('PRC');
写入的时间是["open_time"]=> string(19) "2014-08-23 08:11:27" ,貌似不是24小时制了
刚试了你的"open_time" => 'now()' 得到的是["open_time"]=> string(19) "0000-00-00 00:00:00" ,我的写入参数都用addslashes转义过,不知道是不是这个问题

php当中没有now()函数
now()  等价 date("Y-m-d H:i:s" );

相关标签:
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号