mysqli - undefined variable : mysqli - PHP OOP

标签 mysqli php

如何在扩展类中实现 mysqli?

我正在上传图像并将其存储在 MySQL 数据库中,但收到此错误:

Notice: Undefined variable: mysqli in ...ecc/ecc/ on line 33

Fatal error: Call to a member function query() on a non-object in ...ecc/ecc/ on line 33

这是我的测试代码:

<?php
    interface ICheckImage {
        public function checkImage();
        public function sendImage();
    }           
    abstract class ACheckImage implements ICheckImage {
        public $image;
        private $mysqli;    
        public function _construct(){
            $this->image = $_POST['image'];
            $this->mysqli = new mysqli('localhost','test','test','test');
        }
    }           
    class Check extends ACheckImage {
        public function checkImage() {
            if($this->image > 102400) {
                echo "File troppo grande";
            } 
        }
        public function sendImage() {
            //This is the line 33 give me the error
            if ($mysqli->query("INSERT INTO images (image) VALUES ('$this->image')")) {
            echo "Upload avvenuto &nbsp";
            } else {
                echo "Errore &nbsp" . $mysqli->error;
            }  
        }
    }   
    $form = new Check();
    $form->checkImage();    
    $form->sendImage();
?>

最佳答案

您的代码中存在一些错误。

  1. $mysqli 成员在抽象类中是私有(private)的。它不会被 Check 类继承,因此它不存在于该类中。使其受到保护。

  2. 访问类的成员总是需要前面的$this->,特别是本例中的$this->mysqli

  3. 构造函数必须命名为__construct,前面有两个下划线。

  4. 图像检查看起来有问题。 $_POST['image'] 确实包含您希望存储在数据库中的内容,但您还将它与整数值进行比较,并且如果它更大,则似乎会回显错误消息。虽然数据处理将起作用,例如您可以将 POST 数据中的字符串与整数进行比较,看起来您想要其他东西。

关于mysqli - undefined variable : mysqli - PHP OOP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14696931/

相关文章:

PHP动态下拉列表

php - 您的 SQL 语法有错误; - 和 undefined variable 错误 - 可能已连接

php - 获取 HTTP 请求然后处理 HTML 响应的最佳方法

php - 打印机友好网页问题

php - 查询 MySQL 当前和当天的旧数据,计算变化

PHP 和 MySQL 安全 : one-way encryption Vs two-way encryption

php - 合并/合并日期范围的算法

php - mysql 查询是否无法正常工作

php - 无法通过数据库查询验证用户

php - 使用 mySQLi 准备语句更新