【发布时间】:2014-09-03 04:34:24
【问题描述】:
如果我使用 MySQLi 准备好的语句,如下所示:
$stmt = $con1->prepare("UPDATE Login SET Session='LoggedOut' where Session=?");
$stmt->bind_param('s',$Session);
$stmt->execute();
$stmt->close();
我还需要像下面这样用mysqli_real_escape_string(); 转义$Session 之类的变量吗:
$Session = mysqli_real_escape_string($con1, $_COOKIE['Session']);
$stmt = $con1->prepare("UPDATE Login SET Session='LoggedOut' where Session=?");
$stmt->bind_param('s',$Session);
$stmt->execute();
$stmt->close();
【问题讨论】:
-
不,这就是你使用准备好的语句的原因
-
附带说明一下,拥有一个名为
$Session的变量将来可能会让您或其他人感到困惑。 -
@aldanux @JiFus 所以如果我理解正确,我不能将
mysqli_real_escape_string();与准备好的语句一起使用。因为我是实习生,我需要做的任务之一是从mysql_*更新代码?而且我还想知道是否有必要在只有固定值的情况下使用准备好的语句?例如,有人需要批准或拒绝请求,而该人获得的唯一输入是选择 2 个按钮批准和拒绝,每个按钮写入不同的值,这些值是固定的。我需要在那里使用准备好的语句吗?
标签: php mysql mysqli prepared-statement