此字符串有效:
$sql = 'SELECT * FROM Bar_Info WHERE b_id=' .
$db->real_escape_string($_GET['b_id']);
但是,这个没有:
$sql = 'SELECT * FROM Bar_Info WHERE BarLink=' .
$db->real_escape_string($_GET["BarLink"]);
b_id
是变量,BarLink
是条的名称,其中一些包括连字符。一个例子是:granite-city
有没有理由第二个代码示例不起作用?
答案 0 :(得分:1)
您需要引用SQL参数:
$sql = 'SELECT * FROM Bar_Info WHERE BarLink=\'' . $db->real_escape_string($_GET["BarLink"]).'\'';
第一个查询可能有效,因为您只使用数字,但第二个查询使用字符串。
PS:在两种情况下都需要引用,否则您很容易受到SQL注入攻击。
答案 1 :(得分:0)
字符串必须用引号括起来,而整数则不包含在内。所以如果" BarLink"包含字符串,您必须添加:
<div ng-messages="contactForm.$valid" ng-if="contactForm.$submitted && contactForm.$valid">
<span class="sent">Your message has been sent!</span>
</div>