标签:
今天在用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