我正在尝试从数据库中选择一个值,如果一切都只是数字,它可以完美工作 - 但如果涉及字母,它就无法工作。这是 OpenCart 中的。
我的专栏名为 campaign_code
,其类型为 VARCHAR
。
这是命令...
$campaign_id = $this->db->query("SELECT campaign_id FROM " . DB_PREFIX . "campaign WHERE campaign_code = ". $this->db->escape($campaign_code));
当$campaign_code
等于任何数字时都可以。它按预期进行选择。
当它是字母或数字或字母的组合时,我收到此错误...
Uncaught exception 'ErrorException' with message 'Error: Unknown column '85f' in 'where clause'<br />Error No: 1054<br />SELECT campaign_id FROM oc_campaign WHERE campaign_code = 85f' in C:\xampp\htdocs\microcharity\system\database\mysqli.php:40
谢谢。
最佳答案
在 where 子句
中使用整数
时,您可以避免使用引号
,但在使用字符串时,您必须将其括在单引号中。
对于整数 -
$campaign_id = $this->db->query("SELECT campaign_id FROM '".DB_PREFIX."' WHERE campaign_code = ".$this->db->escape($campaign_code)."");
对于字符串 -
$campaign_id = $this->db->query("SELECT campaign_id FROM '".DB_PREFIX."' WHERE campaign_code = '".$this->db->escape($campaign_code)."'");
关于php - 使用字母时尝试从数据库中选择时未捕获异常 'ErrorException',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23134667/