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


php sql query function syntax not working

我正试图让我的功能正常工作,过了一段时间,我摔下了键盘,然后一切都正常了,我注意到:

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,则需要双引号