Aşağıdaki kod var:Parametrelere bağlanırsam mysql_real_escape_string kullanmalı mıyım?
function dbPublish($status)
{
global $dbcon, $dbtable;
if(isset($_GET['itemId']))
{
$sqlQuery = 'UPDATE ' . $dbtable . ' SET active = ? WHERE id = ?';
$stmt = $dbcon->prepare($sqlQuery);
$stmt->bind_param('ii', $status, $_GET['itemId']);
$stmt->execute();
$stmt->close();
}
}
Ben bu durumda mysql_real_escape_string veya i iyiyim gerekiyor mu? DB motoru kendisi yapacak:
Yalnızca parametrelerin SQL enjeksiyonuna karşı bağışık olduğunu unutmayın; Değer, kullanıcı girdisinden geliyorsa, sorgu dizesine ("$ dbtable" gibi) doğrudan enterpolasyon yapılan herhangi bir değişken potansiyel bir vektördür. Tabii ki, tablo ve sütun adları gibi şeyler doğrudan kullanıcı girdisinden doğrudan gelmemelidir. – outis