我正试图让我的功能正常工作,过了一段时间,我摔下了键盘,然后一切都正常了,我注意到:
{
function get_people_fullname($db, $people_id) {
$query = 'SELECT
people_fullname
FROM
people
WHERE
people_id = '.$people_id;
$result = mysql_query($query, $db) or die(mysql_error($db));
$row = mysql_fetch_assoc($result);
return $row['people_fullname'];}
}
哪里有查询
people_id = '.$people_id;
哪个工作
I originally had
people_id = $people_id';
不起作用
我只是迷路了,我想这是一件简单的事情,一个更有经验的人可以向我解释吗?
感谢
您需要使用双引号才能获得变量的值
$query = "SELECT
people_fullname
FROM
people
WHERE
people_id = $people_id";
在php中,假设$a = 5
、
echo 'a is $a'; // will result: a is $s
echo "a is $a"; // will result: a is 5
附带说明一下,如果变量的值(s)来自外部,那么查询就容易受到SQL Injection
的攻击。请看下面的文章来了解如何防止它。通过使用PreparedStatements
,您可以摆脱在值周围使用单引号的情况。
- 如何防止PHP中的SQL注入
单引号没有变量替换-如果您想用值替换$var,则需要双引号