码迷,mamicode.com
首页 > 数据库 > 详细

关于Thinkphp框架模型应用过程中出现的错误Undefined class constant MYSQL_ATTR_INIT_COMMAND

时间:2015-06-23 23:01:27      阅读:384      评论:0      收藏:0      [点我收藏+]

标签:

今天在用thinkphp框架做网站的时候,在调用model模型是意外发生Fatal error: Uncaught exception ‘PDOException‘ with message ‘SQLSTATE[42S02]错误,技术分享

下面是我百度的结果,大部分说解决问题可以分为以下两类:

1.

windows下iis7.5+php5.4.11(FastCGI)

缺少pdo,编辑php.ini

取消注释:

extension=php_pdo_mysql.dll

重启iis

PHP数据对象(PDO)扩展定义了一个轻型的一致的访问数据库的接口.每个实现了PDO接口的驱动程序像一般的扩展函数一样展示数据库相关的特性.不能用PDO函数本身执行任何数据库函数,必须使用数据库相关的驱动程序来访问数据库服务器.
PDO提供了一个数据访问抽象层,意思是不需要知道正在使用什么数据库,就可以用同样的函数发布查询和检索数据.

2.修改代码:

该种情况(Undefined class constant ‘MYSQL_ATTR_INIT_COMMAND‘)是PHP5.3.0的BUG,参阅http://bugs.php.net/bug.php?id=47224 
解决办法有两种,一是改代码
$pdb = new PDO("mysql:host=localhost;dbname=test", ‘root‘);
$pdb->exec("SET NAMES utf8");
二就是升级你的PHP到更高的版本

 

对以上网友的解答我自己鼓捣了很久也没有解决,最后在自己研究下发现解决办法其实很简单 :

tp操作模型与jsp中hibernait操作数据表相似,你要操作的模型名一定要与你的表名相对应,这是一种办法

还有一种办法是:protected $trueTableName    =   ‘‘;调用该语句操作真实数据表

关于Thinkphp框架模型应用过程中出现的错误Undefined class constant MYSQL_ATTR_INIT_COMMAND

标签:

原文地址:http://www.cnblogs.com/xiaoq-enjoy/p/4596398.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!