我有一个如下的sql查询
$sql = "SELECT * FROM discounts WHERE sh_id=$member_id AND discount_code=$discount_code";
当$discount_code = "test1";
我没有结果
无论何时$discount_code = 1;
我得到结果。
然后有趣的是,如果我赚$discount_code = "1";
,我也会得到结果
请注意,我的数据库中有两行相同,唯一的变化是Discount_code列,其中第一行为test1
,另一行为1
我在这里缺少一个令人眼花obvious乱的明显东西吗?
discount_code
的列类型为varchar(255)
谢谢
答案 0 :(得分:2)
当$discount_code
的行为类似于整数,1
或"1"
时,在SQL中保持原样即可。但是,如果是字符串,则需要用引号引起来。
用引号引起来的整数也可以。
$sql = "SELECT * FROM discounts WHERE sh_id=$member_id AND discount_code='$discount_code'";