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

作者: 一路远行_enjoy
发布时间:2015-06-29 17:49:15

今天在用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    =   '';调用该语句操作真实数据表

来源:http://www.cnblogs.com/xiaoq-enjoy/p/4596398.html

推荐: