【发布时间】:2015-02-27 08:54:01
【问题描述】:
<?php
function searchDatabase($key, $value)
{
$key = $key;
$query = "SELECT * FROM user_data WHERE username='$value'";
$result = mysqli_query(loadDatabase(), $query);
$numRows = mysqli_num_rows($result);
if ($numRows > 0)
{
return true;
}
else
{
return false;
}
}
?>
所以我使用此代码搜索我的数据库以显示 key/value 对上的匹配项,但 $key 在传递到查询功能。如果我用单词用户名替换它,它匹配得很好。是类型问题吗?我没有明确说明它的类型,所以我可以搜索具有相同功能的其他列。
username: varchar(40)
【问题讨论】:
-
呃?
$key = $key;一定是搞错了?将username替换为$key。 -
$query = "SELECT * FROM user_data WHERE username='$value'";应该是$query = "SELECT * FROM user_data WHERE username='".$value."'"; -
您的代码易受攻击。不要在没有 real-escape-string 的情况下使用 mysqli,因为您的网站会被 SQL 注入攻击。
标签: php mysql database variables select