2016-05-22 1 views
0

Ok。私は最初のプロジェクトでFPDFを使用してSQLインジェクションを防止しようとしています。PHPとMySQLのmysqli-> prepareはFPDFファイルで失敗を続けます

(私の不安定なソリューションが動作しているので、私はそれがFPDFを行うには、特に何もしてい疑う。ただ、私はこれはPDFを生成するためのデータを取得するために使用されていることを言及しようと思いました:))

以下のコード強大な罰金を働いています。しかし、それは注射に弱い:私の知る限り、私は?$IDを交換する必要があります理解し

$ID = htmlspecialchars($_GET["ID"]); 

$mysqli = mysqli_connect('','','',''); // Empty on purpose due to posting here :) 

$IDQuery = mysqli_query($mysqli,"SELECT ID FROM sendsubmits WHERE ID = $ID"); 

$IDこのようなURLから取得した整数です。そしてbind_paramを使ってそれを挿入させます。

私が試したし、ここでドキュメントに従ってきました: http://php.net/manual/en/mysqli-stmt.bind-param.php

をそして、私の結果はこれです:これは動作しない

$mysqli = new mysqli('','','',''); // Empty on purpose due to posting here :) 

/* Check connection */ 
if (mysqli_connect_errno()) { 
    printf("Connect failed: %s\n", mysqli_connect_error()); 
    exit(); 
} 


$IDQuery = $mysqli->prepare('SELECT ID FROM sendsubmits WHERE ID = ?'); 
$IDQuery = bind_param('i', $ID); 
$IDQuery = execute(); 

printf('%d Row inserted.\n', $stmt->affected_rows); 

$IDQuery->close(); 

。そして、私は理由を理解できないようです。

提案がありますか?

+1

最初に、 '$ IDQuery'を再割り当てし続けます。次に、' bind_param'と 'execute'は関数ではなく、ステートメントオブジェクトのメソッドですか?これは私の致命的なエラーになると予想しているので、これはあなたの実際のコードです。 –

答えて

0

ない$IDQuery = bind_param('i', $ID);

しかし$IDQuery->bind_param('i', $ID);

実行と同じ。次回は、マニュアルで読んだことを理解しようとしています

関連する問題