Php 尝试使用字母从数据库中选择时出现未捕获异常“ErrorException”

Php 尝试使用字母从数据库中选择时出现未捕获异常“ErrorException”,php,mysql,Php,Mysql,我试图从数据库中选择一个值,如果所有内容都是数字,它就可以正常工作,但如果涉及到字母,它就无法工作。这是在OpenCart中 我的列名为campaign_code,其类型为VARCHAR 这是命令 $campaign_id = $this->db->query("SELECT campaign_id FROM " . DB_PREFIX . "campaign WHERE campaign_code = ". $this->db->escape($campaign_cod

我试图从数据库中选择一个值,如果所有内容都是数字,它就可以正常工作,但如果涉及到字母,它就无法工作。这是在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 col=1时,它将1解释为整数,A将搜索该整数。当您提供WHERE col=something时,它将搜索列something,即WHERE id=id2,当您希望一列的值与另一列的值相等时,将使用此选项。如果要使用字符串进行搜索,则需要像WHERE col='you string'这样的引号

如果您搜索您的异常,您可能会在where子句中找到答案未知列

在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)."'");