在select语句中使用变量写入不起作用?

时间:2014-11-18 15:45:36

标签: php mysql

好的,这是我的代码:

<?php 
$cat1 = $_GET["cat1"];
$query = "SELECT DISTINCT cat2 FROM products WHERE cat1 = $cat1";
$result = mysqli_query($connection, $query);
if (!$result) {
die("Geen data beschikbaar");
}
while($category2 = mysqli_fetch_assoc($result)) {
echo "<a href=\"#\">".$category2["cat2"]."</a><br />";
}
?>

我的网址是http://www.websitename.com/category.php?cat1=Holland

显然这不起作用我不明白为什么。如果我在语句中删除WHERE之后的变量,只需填写'Holland'就可以了。所以我在做一些不正确的语法?感谢

1 个答案:

答案 0 :(得分:2)

$sql = "SELECT DISTINCT cat2"
    . " FROM products"
    . " WHERE cat1 = '" . mysqli_real_escape_string($connection, $cat1) . "'";

在字符串周围添加单引号,并将其转义以避免sql注入。