遇到一个非数字值 PHP MYSQL opencart

问题描述 投票:0回答:2

警告:在homeu914452720domainse-gilius.compublic_htmlsystemstoragefnpzt1uybylmmodificationadminmodelatalogmanagement中遇到一个非数字值。在homeu914452720domainse-gilius.compublic_htmlsystemstoragefnpzt1uybylmmodificationadminmodelcatalogmanufacturer.php第349行遇到一个非数值警告。在homeu914452720domainse-gilius.compublic_htmlsystemstoragefnpzt1uybylmmodificationadminmodelcatalogmanufacturer.php第349行遇到一个非数值。

当我执行删除函数:admincontrollercatalogmanufacturer_download.php时,我得到这个错误。

function delete(){
        // var_dump("I AM IN DELETE");
        $this->load->model('catalog/manufacturer');
        $postData = array();
        if(isset($_POST['submitdelete'])){
            //  var_dump("DELETE SUBMITTED");
            $entryID = $_POST['entryID'];// <-- gotta protect from sql injection.
            //  var_dump($entryID);
            $this->model_catalog_manufacturer->deleteManufacturersDownload($entryID);
        }
    }

如果我var_dump($entryID)给出的结果是:string(1) "5"

adminmodelcatalogmanufacturer.php

public function deleteManufacturersDownload($id){
        $this->db->query("DELETE FROM ". DB_PREFIX . "manufacturer_downloads WHERE id =" + "'"+$id+"'");
        return "success";
    }

我哪里做错了?

php mysql opencart
2个回答
1
投票

你正在混淆字符串的连接。

改变

$this->db->query("DELETE FROM ". DB_PREFIX . "manufacturer_downloads WHERE id =" + "'"+$id+"'");

$this->db->query("DELETE FROM ". DB_PREFIX . "manufacturer_downloads WHERE id =" . "'" . $id . "'");

这个错误来自于试图将字符串和数字加在一起。

echo "FOO" + 1337; // Warning:  A non-numeric value encountered in[...]

1
投票

你在查询中使用了 "+",这是不对的,不需要用下面的代码。

$this->db->query("DELETE FROM ". DB_PREFIX . "manufacturer_downloads WHERE id = '$id'");
© www.soinside.com 2019 - 2024. All rights reserved.