1、tp已经集成了pdo,那么如何使用框架方法调起pdo了?
use think\facade\Db;
$instance = Db::connect(); //如果有多个数据库,可填写数据库配置标识(database中配置的键名,非数据库名),默认为mysql
$instance->execute("SELECT 1"); //如果是【数据】增删改查直接运行
$instance->getPdo()->exec($sql); //如果是【数据表】的增删查改,需要通过excute或query获取pdo实例,
//在执行exec。这里必须是exec
ThinKPHP5调用储存过程与手动执行储存过程结果不同的问题
Db::startTrans();
//直接通过Db类执行sql
Db::execute("execute sp_MatStoreNowAll '2022-07-07 17:24:24','01','DateOut','0','PDate','',''");
Db::commit();
解决办法:先通过Db类获取当前数据库连接,再获取pdo对象,用pdo对象执行存储过程。
$conn= Db::connect();
$conn->getPdo()->exec("execute sp_MatStoreNowAll '2022-07-07 17:24:24','01','DateOut','0','PDate','',''");
$conn= Db::connect();
$res=$conn->getPdo()->exec("execute sp_fastconsumeaotu '$cardno','$sn','$recordindex','$recorddoorno'");