我在MySQL数据库中有一个包含id
,location
,type
,content
列的表。如果通过网址中的id
获取特定行,例如domain.com/page.php?id=1
我可以通过以下方式执行此操作:
$sql = "SELECT * FROM database_table WHERE id=" . $_GET["id"];
$rs = mysql_query($sql);
while($row = mysql_fetch_array($rs)) {
echo $row['location'] . $row['type'] . $row['content'] ;
但是,如果我想通过URL中的其他行获取它,例如domain.com/page.php?location=paris&type=housing
我尝试用以下代码替换上面的第一行代码:
$strSQL = "SELECT * FROM database_table WHERE location=" . $_GET['location']
. "AND type="
. $_GET['type'] ;
代码不适用于此网址:
domain.com/page.php?location=paris&type=housing
但可以使用此URL(请注意""行之间):
domain.com/page.php?location="paris"&type="housing"
我的问题:我能做些什么才能做到这一点,我不必拥有" "在URL之间的行之间,以便查询起作用?
答案 0 :(得分:2)
更改
$strSQL = "SELECT * FROM database_table WHERE location=" . $_GET['location'] . "AND type=" . $_GET['type'] ;
到
$strSQL = "SELECT * FROM database_table WHERE location='" . $_GET['location'] . "' AND type='" . $_GET['type'] . "'";
确保你清理你的$ _GET数据但是你很容易受到mysql注入攻击。 不推荐使用Mysql_query,使用PDO。
您将能够在网址中没有引号的情况下调用您的脚本:
domain.com/page.php?location=paris&type=housing