-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値が外部から取得された場合、クエリは脆弱です。予防方法については、以下の記事をご覧ください。を使用すると、値を一重引用符で囲む必要がなくなります。PreparedStatements

于 2013-02-12T02:21:02.770 に答える
1

一重引用符には変数置換がありません - $var を値に置き換えたい場合は、二重引用符が必要です

于 2013-02-12T02:21:17.930 に答える