Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在PHP中使用准备语句时发生致命错误

在PHP中使用准备语句时发生致命错误
EN

Stack Overflow用户
提问于 2012-08-01 10:09:21
回答 2查看 699关注 0票数 0

情况就是这样。我创建了3个PHP文件,全部位于同一个项目文件夹中:

  1. constants.php
  2. Mysql.php (类)
  3. index.php

当我运行index.php时,我得到:

致命错误:在C:\wamp\www\MyBlog\MyClass\MySql.php行#中对非对象调用成员函数prepare()

constants.php:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?php
//Define constent her
define('DB_SERVER', 'localhost');
define('DB_USER', 'root');
define('DB_PASSWORD', '');
define('DB_NAME', 'myblog');

Mysql.php:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?php 

require_once 'constants.php';

class MySql{
        private $conn;
        protected $_query;

    function __constructert() {
        $this->conn = new mysqli(DB_SERVER,DB_USER,DB_PASSWORD,DB_NAME) or
        die("There was a probelm connecting the database");
        return $this->conn;
    }
    protected function _prepareQuery() 
   {
//her the line that problem come from beetwen the () of if : 
      if (!$stmt = $this->conn->prepare($this->_query)) {
         trigger_error("Problem preparing query", E_USER_ERROR);
      }
      return $stmt;
   }

    protected function _dynamicBindResults($stmt){
        $meta=$stmt->result_metadata();
        while ($field = $meta->fetch_field()) {
            print_r($field);
        }
    }

    function query($query){
        $this->_query = filter_var($query,FILTER_SANITIZE_STRING);
        $stmt = $this->_preparequery();
        $stmt->execute();
        $results=$this->_dynamicBindResults($stmt);
    }

index.php:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<? PHP
        include 'MySql.php';
        $Db= new MySql();
        $Db->query("select * from status");

正如我说过的,当我运行index.php时,我得到了以下信息:

致命错误:在线调用C:\wamp\www\MyBlog\MyClass\MySql.php中非对象上的成员函数prepare()

这一行是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
if (!$stmt = $this->conn->prepare($this->_query)) {

要了解更多信息,我测试了到数据库的连接,没关系。我测试了_query属性是否接受了SQL语句,并且确实如此。

EN

回答 2

Stack Overflow用户

发布于 2012-08-01 10:12:39

MySQL的构造函数名为__constructert();正确的构造函数名为__construct()

使用无效的名称,行$Db = new MySQL();将创建对象,但构造函数不会被调用-因此永远不会创建MySQL连接/ $conn对象。

票数 2
EN

Stack Overflow用户

发布于 2012-08-01 10:12:00

这里有一个错误,->_preparequery();

将其更改为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function query($query){         
  $this->_query = filter_var($query,FILTER_SANITIZE_STRING);         
  $stmt = $this->_prepareQuery();         
  $stmt->execute();         
  $results=$this->_dynamicBindResults($stmt);     
} 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11765049

复制
相关文章
iterm2(zsh)粘贴慢解决办法
# .zshrc pasteinit() { OLD_SELF_INSERT=${${(s.:.)widgets[self-insert]}[2,3]} zle -N self-insert
ACK
2022/05/10
7380
IE之页面加载慢.
场景 场景是大屏页面一张深色背景, 里面一些文本元素以及图表展示. 结果在IE下发现加载异常缓慢, 还有部分人员反馈页面卡死. 后台读写优化 默认处理图片逻辑是, ImageIO读取原图, 转成byt
用户1216491
2018/01/24
2.4K0
idea使用debug模式启动非常慢
后来发现,之前在调试代码时不注意给属性加了断点,去掉idea的Breakpoints里的java field watchpoints就不卡了,如下:
凯哥Java
2022/12/16
2.2K0
idea使用debug模式启动非常慢
ntpdate同步时间慢
随着时间的推移,计算机的时钟会倾向于漂移. 网络时间协议 (NTP) 是一种确保您的时钟保持准确的方法。当硬件设备不带电池和无RTC的时候,基本靠网络时间协议来进行同步时间
程序手艺人
2019/02/21
3.6K0
Xshell/Xftp连接Linux速度非常慢(已解决)
1、打开sshd服务的配置文件/etc/ssh/sshd_config,把UseDNS yes改为UseDNS no
Arebirth
2020/06/19
5.4K0
Android Studio导入项目非常慢的解决办法
问题     Android Studio目前已经更新到2.0 Preview 6了,作为Google大力推崇的开发工具,相对于Eclipse ADT有着不可比拟的优势。然而在实际使用时,依然有不少不爽的地方。Android Studio原生支持使用Gradle来构建项目本是个不错的想法,使用动态语言Groovy定义项目构建过程,避免了build.xml文件的繁琐定义。但是Gradle的二进制包体积较大,而且用户可能按照了不同的Gradle版本,构建时可能会出现各种问题。因此又提出了Gradle Wrapp
24K纯开源
2018/01/18
1.4K0
Android Studio导入项目非常慢的解决办法
WordPress后台加载慢的快速优化方法
WordPress后台加载慢,一般与WordPress程序加载海外资源有关,这里推荐安装一个简单易用的插件来进行优化。
超级小可爱
2023/02/20
8970
Ghost 解决 jsdelivr 资源加载慢的问题
用了很久的自建 Ghost 博客系统不知道从哪个版本开始,页面加载速度忽然变慢了很多。看了下加载的资源,发现多了很多走 jsdelivr cdn 的资源,加载速度竟然长达半分钟。。。
mythsman
2023/03/08
2.2K0
Ghost 解决 jsdelivr 资源加载慢的问题
WordPress后台加载慢的快速优化方法
WordPress后台加载慢,一般与WordPress程序加载海外资源有关,这里推荐安装一个简单易用的插件来进行优化。
用户7491502
2021/06/24
3.7K0
WordPress后台加载慢的快速优化方法
大表分页查询非常慢,怎么办?
在实际的软件系统开发过程中,随着使用的用户群体越来越多,表数据也会随着时间的推移,单表的数据量会越来越大。
Java极客技术
2022/12/04
1.5K0
大表分页查询非常慢,怎么办?
为什么我的Redis这么“慢”?
Redis 作为内存数据库,拥有非常高的性能,单个实例的 QPS 能够达到 10W 左右。
架构师修行之路
2020/08/20
3.7K0
【Android】再来一篇Fragment的懒加载(只加载一次哦)
2017-7-14更新: 目前有人使用后出现了诸如首次打开显示空白界面,但点击有反应;或来回切换又变空白界面的问题。这些问题我暂时还不知道该怎么解决,后期有时间时会具体去分析下问题该怎么解决。所以你如果要使用该代码,希望考虑一下,我自己的小应用目前是没碰到这些问题。
请叫我大苏
2018/05/17
1.6K0
我先入坑啦,等你哦!
1.完全基于内存,绝大部分请求是纯粹的内存操作,非常快速。数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1);
夕梦
2021/06/07
3640
我先入坑啦,等你哦!
为啥我的Python这么慢 (一)
在Python系列教程中,我们提到一个概念字符串是不可修改的。这一点可以通过id函数来判断确实是对的。但是这个概念会对我们写作程序有什么影响一直没有特别深的理解。 直到有一次,实验室一个朋友要读基因组数据,结果发现3 G的基因组读一晚上都没读完,就很诧异,看了下代码,这么写的。 基因组序列是GRCh38.fa,FASTA格式,序列行每行70个字符,共44,284,892行 (记住行数有多大),示例如下。 >chr1 NNNNN...(60个N)...NNNNN ACGTA...(60个Nt)...ACGTA
生信宝典
2018/02/05
6490
css加载慢导致加载瞬间白屏(dom比css加载快导致)
2,css样式压缩下,用sass编译一下,放在head顶部,head再用incloud包起来,放在文件夹;
kirin
2020/11/30
2.2K0
还原我的图床数据库,哦耶~
之前的服务器到期后,用了两年的服务器,里面的东西还是蛮多的。我的网站博客,图床,和一些搭建的其他网站。最后我虽然给所有的东西都迁移了,唯独这个图床没有成功迁移,打开网站地址,报错。
废江_小江
2022/09/05
3170
使用 JS 监听加载,避免谷歌广告拖慢网页的加载速度
如果我的网页上有多个广告单元,把该段引入 JS 的代码 放到 head 里 既可以达到一次载入 JS 所有 ins 都可以接到广告,或者还可以使用 JS 监听的方式加载。
Yangsh888
2022/03/28
2.1K0
100%解决github加载慢、github加速
.NET Core Community是一个基于并围绕着 .NET 技术栈展开组织和活动的非官方、非盈利性的民间开源社区,提供了很多优秀的 .NET 开源项目。
老九
2021/08/13
3.2K0
启用Windows防火墙后,FTP传输非常慢
我们有一个计划任务,该任务使用Windows命令行FTP程序在两个Windows服务器之间传输大文件(〜130 MB)。速度很慢(大约需要30分钟),有时会在传输完成之前终止。服务器是2003年(发送)和2008年(接收)。
镭速
2023/06/01
7790
点击加载更多

相似问题

展示主题哦-我-zsh

45

bash,zsh :声明[*] (哦,我的)

13

写自己的哦-我-zsh插件

13

哦,我的ZSH & Vim插入光标

12

哦-我的-zsh历史日期格式

124
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文