php sql查询函数语法不起作用

时间:2013-02-12 02:19:24

标签: php sql function

我正试图让我的功能起作用,过了一会儿我把键盘摔下来然后一切正常,我注意到了:

{

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

哪个不起作用

我只是迷失了,我认为这是一个很有经验的人可以向我解释这个问题吗?

感谢

2 个答案:

答案 0 :(得分: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

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

答案 1 :(得分:1)

单引号没有变量替换 - 如果要将$ var替换为值,则需要双引号