sql >> データベース >  >> RDS >> Mysql

SELECT * FROM people WHERE user_id ='$ user_id' ORDER BY time GROUP BY surname

    SQL、構文、SQLインジェクションの脆弱性にエラーがあり、おそらく廃止されたデータベース拡張機能を使用しています。それで、これが実際にどのように見えるべきかです:

    $dsn = "mysql:dbname=$db_name;host=$db_host";
    try{
        $pdo = new PDO($dsn, $username, $password);
    }
    catch(PDOException $e){
        die($e->getMessage());
    }
    $sql = "SELECT surname, count(id) FROM people WHERE user_token=:usr_token ORDER BY time GROUP BY surname";
    $stmt = $pdo->prepare($sql);
    if ($stmt->execute(array(':usr_token'=>$user_token))){
        $result = $stmt->fetchAll();
    }
    else{
        print_r($stmt->errorInfo());
        die("Error executing query");
    }
    

    PDOマニュアル を参照してください。 詳細



    1. PostgreSQLでのPi()のしくみ

    2. MySQLでパスワードをハッシュする方法は?

    3. MySQLはPostgreSQLのdblinkモジュールに相当しますか?

    4. SqlQueryを使用してストアドプロシージャからの複数の結果を処理する