MySQL OpenCart 查询代码语法错误
MySQL query code syntax error in OpenCart
不知道为什么报错:
Fatal error: Uncaught Exception: Error: You have an error in your SQL
syntax; check the manual that corresponds to your MariaDB server
version for the right syntax to use near '* FROM mydatabase_customer
SET status='0' WHERE customer_id='11'' at line 1
Error No:
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
Stack trace: #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->query('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):
Action->execute(Object(Registry)) #4
/home/nedas/domains/mypage.com/public_html/opencart/system/eng in
/home/nedas/domains/mypage.com/public_html/opencart/system/library/db/mysqli.php
on line 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平台成功插入数据库?
看起来你想要UPDATE
数据不做INSERT
,应该是这样的:
$this->db->query("UPDATE perkulenkijoje_customer SET status='$status' WHERE customer_id='$id'");
如果你想改变一个值你应该使用更新
UPDATE perkulenkijoje_customer
SET status='$status' WHERE customer_id='$id'
无论如何,你不应该在 sql 中使用 php var 你有 sql 注入的风险.. 为此,请查看为你的数据库驱动程序准备的语句和绑定参数
要保持 opencart 数据库结构(我的意思是前缀),您需要使用这样的查询
$this->db->query("UPDATE " . DB_PREFIX . "perkulenkijoje_customer SET status = '" . (int)$status . "' WHERE customer_id = '" . (int)$id . "'");
如果您将此查询移动到模型文件并在控制器中调用它,那就更好了。
不知道为什么报错:
Fatal error: Uncaught Exception: Error: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '* FROM mydatabase_customer SET status='0' WHERE customer_id='11'' at line 1
Error No: 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 Stack trace: #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->query('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): Action->execute(Object(Registry)) #4 /home/nedas/domains/mypage.com/public_html/opencart/system/eng in /home/nedas/domains/mypage.com/public_html/opencart/system/library/db/mysqli.php on line 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平台成功插入数据库?
看起来你想要UPDATE
数据不做INSERT
,应该是这样的:
$this->db->query("UPDATE perkulenkijoje_customer SET status='$status' WHERE customer_id='$id'");
如果你想改变一个值你应该使用更新
UPDATE perkulenkijoje_customer
SET status='$status' WHERE customer_id='$id'
无论如何,你不应该在 sql 中使用 php var 你有 sql 注入的风险.. 为此,请查看为你的数据库驱动程序准备的语句和绑定参数
要保持 opencart 数据库结构(我的意思是前缀),您需要使用这样的查询
$this->db->query("UPDATE " . DB_PREFIX . "perkulenkijoje_customer SET status = '" . (int)$status . "' WHERE customer_id = '" . (int)$id . "'");
如果您将此查询移动到模型文件并在控制器中调用它,那就更好了。