2017-06-19 18 views
0

我試圖防止在我的代碼中的SQL注入,所以我想改變我的代碼到一個sqli準備好的語句,但我的問題是,不工作我想要選擇我的數據庫中的所有用戶,並顯示他們的名字和照片,請有人應該幫助我與代碼。如何使用準備語句選擇我的數據庫中的所有數據

的工作不錯,但打開到SQL注入

這是我第一個代碼

<?php 
    if(isset($_SESSION['em'])){ 
    $eml = $_SESSION['em']; 
    $query = ("select id,fst,las,uid,pass,email,sts,ocp from Users"); 
    $res = mysqli_query($conn,$query); 

    if(mysqli_num_rows($res) > 0){ 


    while($row = mysqli_fetch_assoc($res)){ 
    $_SESSION['ids'] = $row['id']; 
    echo $row['fst']; 
    echo $row['ocp']; 
    echo $row['las']; 

    } 
    } 
    } 
    ?> 

如何使用準備語句相同的代碼,請

+2

看起來你應該參考這裏:?如何防止SQL注入的PHP(https://stackoverflow.com/questions/60174/how-can-i-prevent- SQL注入功能於PHP)。這將顯示您如何使用準備好的語句。 – MinistryofChaps

回答

1

如果您在查詢中不使用任何值,你不需要準備好的語句。只有當你在where子句中插入一些值時,你才應該使用它。

https://secure.php.net/manual/en/mysqli.quickstart.prepared-statements.php

這裏是一個完整的教程如何使用它。這並不複雜。您必須用佔位符替換您的值,然後將您的參數綁定到您的查詢。例如:

$stmt = $conn->prepare("INSERT INTO MyGuests (firstname, lastname, email) VALUES (?, ?, ?)"); 
$stmt->bind_param("sss", $firstname, $lastname, $email); 
$stmt->execute(); 
相關問題