Mysql问题整理

Yii2数据库报错-SQLSTATE[HY093]: Invalid parameter number: no parameters were bound

PHPer 2018-01-18 2292 0 0
在提交表单时遇到了报错,在本地运行没问题,但是线上的项目只要提交内容稍多就会报错。PHP代码是一样的,于是想到是服务器配置那里和本地的不一样导致的

在提交表单时遇到了报错,在本地运行没问题,但是线上的项目只要提交内容稍多就会报错。PHP代码是一样的,于是想到是服务器配置那里和本地的不一样导致的,但是提示是没绑定,于是就像办法换了几种Yii2数据库操作的方式问题还在,最后在网上查,下面的分析基本是ok的,但是解决办法给的不好。尝试了后还是会报错。最后找到了解决的办法,我会在最后说。


并不是参数没有绑定,查看findAll()的源码

public function findAll($condition='',$params=array())
{
    Yii::trace(get_class($this).'.findAll()','system.db.ar.CActiveRecord');
    $criteria=$this->getCommandBuilder()->createCriteria($condition,$params);
    return $this->query($criteria,true);
}

query实际上执行的是:

$command=$this->getCommandBuilder()->createFindCommand($this->getTableSchema(),$criteria);

$command->queryAll();

而createFindCommand() 调用bindValue(),里面的代码如下:

$this->_statement->bindValue($name,$value,$this->_connection->getPdoType(gettype($value)));

连接已经timeout,失效了。bindValue无用。 ...

立即注册

更新于:2022-05-29 10:20:05
    您需要登录后才可以评论。 立即注册
    相关内容

    说说国产电影

    大陆电影《霸王别姬》到底如何?

    周星驰的喜剧之王

    真正的难忘,再说周星驰,《大话西游》两部曲

    不得不提的《英雄本色》,一帮演员和剧组太给力了,当然导演厉害了!

    2010年后的国产电影,看来除了《让子弹飞》其他都可以带过了?

    《芳华》这样露大腿合适吗?

    《国士无双》还是那么好看

    算是知道花木兰那么多成本都花在哪了

    评论《八佰》-为了照顾部分同学的逻辑思维能力,俺们通俗一把

    【豆瓣评论】评《中国合伙人》

    推荐内容

    分享几个好用的bt搜索bt资源下载网址网站

    影视电影剧集动漫综艺bt资源在线播放网址网站推荐分享

    全网最新bt磁力搜索引擎bt资源bt网站网址分享

    怎样使用V2Ray代理和SSTap玩如魔兽世界/绝地求生/LOL台服/战地3/黑色沙漠/彩...

    sstap游戏代理教程 从此玩如魔兽世界/绝地求生/LOL台服/战地3/黑色沙漠/彩虹六...

    使用V2Ray的mKCP协议加速游戏

    v2rayN已停止工作