php数据库操作Call to a member function Execute() on a non-obje报错

php中文网
发布: 2016-06-20 12:43:33
原创
3087人浏览过

class sqlitedb {
    //打开sqlite数据库
    function conn($dbname) {
        $conn = null;
        $path ="/etc/ypm/system.cfg";
        if(file_exists($path)){
            $dbname = str_replace('../', '', $dbname);
            $dbname = str_replace('./', '', $dbname);
            require_once('pqmdconfig.php');
            $key = "dbpath";//verpath
            $dbname = getconfig($key,$path).$dbname;
        }
        $dbpath = 'sqlite:'.$dbname;
        try {
            $conn = new pdo($dbpath);
            //$conn->begintransaction();
        } catch(pdoexception $e) {
            echo 'exception is:'.$e->getmessage();
        }
        return $conn;           
    }
以上是数据库的链接和查询操作
include "shm_offset.php";
include "sqlite.php";

$obj= new sqlitedb();

if ( isset($_get['page'])) {//翻页处理

if($conn=$obj->conn('../ypm.db')){

    $sql = "select max(id) as total from data_3sec ";
$total =  $obj->query($conn,$sql);
$total = $total['0']['total'];
$now=$_get['page']?$_get['page']:1;
if($now >=$total){$now = $total;}
if($now  $list = $now;

$argv = $_get['argv'];
$argv = explode("|",$argv);
$num = count($argv)-1;

//$sql = "select data,time from data_3sec order by id desc limit ".$list.",1";
$sql = "select data,time,id from data_3sec order by time desc limit 1 offset ".($list-1);
//因为数据量庞大,无法计算总数(卡死),所以改成id
//dump($sql);
// exit();

$result = $obj->query($conn,$sql);
$data=$result[0]['data'];

// dump($data);
以上是部分查询代码 call to a member function execute() on a non-obje 之前是两个数据库是可以运行的,现在改成了一个数据库之后就报这个错误,代码数据库名字方面也该多来了求助各位高手

挖错网
挖错网

一款支持文本、图片、视频纠错和AIGC检测的内容审核校对平台。

挖错网 28
查看详情 挖错网


回复讨论(解决方案)

错误信息指出 Execute 方法不存在,但在你的代码中并未看到在哪里调用了 Execute

错误信息指出 Execute 方法不存在,但在你的代码中并未看到在哪里调用了 Execute



    //查询操作
    function query($conn,$sql) {
        $result = array();
        include "shm_offset.php";
        if(count($m_fUsys_OffSet)            if(strpos($sql,'and')==false && strpos($sql,'line')!==false){
                $sql = str_replace('where','',$sql);
            }
            $sql = str_replace('line','',$sql);
            $sql = str_replace('=0','',$sql);
            $sql = str_replace('= 0','',$sql);
        }
      
        try {
            $sth = $conn->prepare($sql);
            $sth->execute();
            //获取结果
            //var_dump($conn);
            $result = $sth->fetchAll();           
        } catch(PDOException $e) {
            echo 'Exception is:'.$e->getMessage();
        }
        return $result;
    }
不好意思忘贴了

print_r($conn);
$sth = $conn->prepare($sql);
print_r($sth);

print_r($conn);
$sth = $conn->prepare($sql);
print_r($sth);


只显示了$conn的信息竟然是PDO Object ( )这是没实例化成功?

print_r($conn);
$sth = $conn->prepare($sql);
print_r($sth);


终于知道问题在哪了有个地方数据库名字没改到,真是谢谢了要不是print()还找不到,公司临时给的任务也没学过php
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号