OpenCart中的MySQL查询代码语法错误

时间:2019-01-30 11:34:15

标签: php mysql syntax opencart

我不知道为什么会出错:

  

致命错误:未捕获的异常:错误:您的SQL中有一个错误   句法;检查与您的MariaDB服务器相对应的手册   在'* FROM mydatabase_customer附近使用正确语法的版本   第1行的SET status ='0'WHERE customer_id = '11''
错误编号:   1064
INSERT INTO * FROM mydatabase_customer SET status ='0'WHERE   customer_id = '11'in   /home/nedas/domains/mypage.com/public_html/opencart/system/library/db/mysqli.php:40   堆栈跟踪:#0   /home/nedas/domains/mypage.com/public_html/opencart/system/library/db.php(45):   DB \ MySQLi-> query('INSERT INTO * F ...')#1   /home/nedas/domains/mypage.com/public_html/opencart/catalog/controller/account/success.php(29):   DB->查询('INSERT INTO * F ...')#2   /home/nedas/domains/mypage.com/public_html/opencart/system/engine/action.php(79):   ControllerAccountSuccess-> index()#3   /home/nedas/domains/mypage.com/public_html/opencart/catalog/controller/startup/router.php(25):   动作->执行(对象(注册表))#4   /home/nedas/domains/mypage.com/public_html/opencart/system/eng   /home/nedas/domains/mypage.com/public_html/opencart/system/library/db/mysqli.php   在第40行

我的代码:

        if ($this->customer->isLogged()) {
        $status = '0';
        $id = $this->customer->getId();
        $this->db->query("INSERT INTO * FROM perkulenkijoje_customer SET status='$status' WHERE customer_id='$id'");
        echo ("Info: Insert done");
    } else {
        echo ("Info: Please log in");
    }

请帮助我。

如何使用opencart平台成功插入数据库?

3 个答案:

答案 0 :(得分:0)

看起来您想UPDATE数据没有INSERT,应该是这样的:

$this->db->query("UPDATE perkulenkijoje_customer SET status='$status' WHERE customer_id='$id'");

答案 1 :(得分:0)

如果要更改值,则应使用update

     UPDATE perkulenkijoje_customer
     SET status='$status' WHERE customer_id='$id'

无论如何,您都不应该在sql中使用php var,否则您有可能遭受sqlinjection的风险。为此,请查看为数据库驱动程序准备的语句和绑定参数

答案 2 :(得分:0)

要保持opencart数据库结构(我的意思是前缀),您需要使用这样的查询

# test.rb
require 'httparty'

data = { 
  param1: "nameserver",
  param2: { code: "XYZ", name: "NAME", start: "2017" }
}

response = HTTParty.put 'http://localhost:4567/', body: data
puts response.body
# => {"param1"=>"nameserver", "param2"=>{"code"=>"XYZ", "name"=>"NAME", "start"=>"2017"}}

最好将查询移至模型文件并在控制器中调用。