-2

我正试图让我的功能正常工作,过了一会儿我猛击键盘,然后一切正常,我注意到:

{

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';

这是行不通的

我只是迷路了,我认为这是一个更有经验的人可以向我解释的简单事情?

谢谢

4

2 回答 2

3

您需要使用双引号来获取变量的值,

$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

作为旁注,SQL Injection如果变量的值(s)来自外部,则查询很容易受到攻击。请看下面的文章,了解如何预防。通过使用PreparedStatements,您可以摆脱在值周围使用单引号。

于 2013-02-12T02:21:02.770 回答
1

单引号没有变量替换 - 如果你想用一个值替换 $var ,双引号就是你想要的

于 2013-02-12T02:21:17.930 回答