-5

URL から GET 変数を使用し、それを MySQL select ステートメントで ID として使用してから、結果をページにエコーアウトしたいと考えています。$_GET 変数自体をエコーアウトすることはできましたが、クエリで変数として使用することはできません。以下のコードが機能しないのはなぜですか?

<?php
require_once(dirname(__FILE__) . '/core/config.php');
include_once "shared/ez_sql_core.php";
include_once "ez_sql_mysqli.php";
$db = new ezSQL_mysqli(DB_USER,DB_PASSWORD,DB_USER,'localhost');

$client = (int)mysqli_real_escape_string($_GET['client']);

$results = $db->get_results("SELECT * FROM clients WHERE id=" . $client.  ";");

foreach ( $results as $data ){ 
    echo $data->name; 
  }

?>
4

1 に答える 1

3

その ezSQL を間違った方法で使用しています。

使用方法は次のとおりです。

$client = $db->escape($_GET['client']);
$results = $db->get_results("SELECT * FROM clients WHERE id='$client'");

ただし、この途方もなく安全でないソリューションを取り除き、代わりに PDO を使用することを強くお勧めします。

$results = $pdo->prepare("SELECT * FROM clients WHERE id=?");
$results->execute([$_GET['client']]);
foreach ( $results as $data ){ 
    echo $data->name; 
}
于 2016-09-05T08:44:46.150 に答える