2016-04-11 9 views
-2

私のデータベースと私は以下のようなデータを取得しています。しかし、私はSQLインジェクションによってSQLインジェクションを防止するために、フィールドを表示したい場所にエコーアウトします。 安全な方法を教えてください。私を助けてください。助けてください。 と私はあなたがユーザーの入力を使用している場合にのみ実行することができ、すべてのdata.Pleaseは私のSQLインジェクションを防ぐために安全なデータを取得する方法

<?php 
$getdata ="SELECT * FROM tblname ODER BY "; 
$result = mysql_query($getdata); 
$row = mysql_fetch_array($result); 
$bookName = $row['bookName']; 
$timestamp = $row['timestamp']; 
$Country = $row['Country']; 
$Category = $row['Category']; 
$Price = $row['Price']; 
$Photo1name = $row['Photo1name']; 
    ?> 

答えて

1

SQL injectionを助ける取得するために機能しながら、使用したいです。
データベースから読み込んだときに安全です。コードではmysql_real_escape_stringを使用する必要がありますが、私はPDOを使用することをお勧めします。また、自動エスケープ値の準備文も用意されています。 htmlentitiesまたはstrip_tags機能を使用して、出力トライをサニタイズする

$sth = $dbh->prepare('SELECT * FROM tblname WHERE name = :name ORDER BY'); 
$sth->execute([':name' => $_POST['name']]); 
$result = $sth->fetchAll(); 

$pdo = PDO('mysql:host=localhost;dbname=test', 'root', 'iAmD4B3st!'); 
$sql = $pdo->prepare("INSERT INTO my_table (name, surname) VALUES (:name, :surname)"); 
$sql->execute([ 
    ':name' => isset($_POST['name']) ? $_POST['name'] : '', 
    ':surname' => isset($_POST['surname']) ? $_POST['surname'] : '', 
]); 
+0

イム入力フィールドを消毒:あなたは値をエスケープする必要がSQLインジェクションを防ぐために

。 しかし、イムは、私はPDOについて知らないスクリプトでそれを知っていることを好む、PDOない、 、 あなたはすべてのデータを取得し、divタグでそれらを表示する方法を教えていただけますか?() –

+0

@LeoneMaleash PDOが非 感謝-deprecatedライブラリはデータベースで動作します。 'divタグで表示する' '

' – Justinas

+0

実際にはthis.Imがデータをエコーすると、1行のデータが混乱してしまいます。 $ getdataquery = mysql_query( "SELECT 'bookName'、' bookAccessLink'、 'timestamp'、' Country'、 'Category'、' Price'、 'Photo1name' FROM tblname ORDER BYタイムスタンプDESC LIMIT 0,25"); while($ row = mysql_fetch_array($ getdataquery)){ $ bookName \t = $ row ['AdName']; $ bookAccessLink = $ row ['AdAccessLink']; $ timestamp = $ row ['timestamp']; $国\t = $行['国']; $カテゴリ= $行['カテゴリ']; $価格\t = $行['価格']; $ Photo1name = $行['Photo1name']; } –