我搜索了绑定参数。但它让我感到困惑。我真的是php和mysql的初学者。
这是代码:
$query ="UPDATE table_user_skills SET rating='" . $_POST["rating"] . "' where rating_id='".$_POST['id']."'";
$result = $conn->query($query);
我想知道如何在此示例查询中应用绑定参数方法。谢谢你的回复。
感谢所有回复。我的代码工作
update.php
$sql = "UPDATE table_user_skills SET rating=? WHERE rating_id=?";
$stmt = $conn->prepare($sql);
$stmt->bind_param('sd', $myrate, $myrateid);
$stmt->execute();
if ($stmt->errno) {
echo "Error" . $stmt->error;
}
else print 'Your rate is accepted.';
$stmt->close();
答案 0 :(得分:1)
编写查询时,请将值( $_POST
变量)保留在SQL代码之外,并使用占位符代替它们。根据您在PHP中使用哪个界面与MySQL数据库进行通信(MySQLi和PDO),您可以使用命名或未命名的占位符代替。< / p>
$query = "UPDATE table_user_skills SET rating= :ratings where rating_id= :id";
$stmt = $conn->prepare($query);
$stmt->execute($_POST);
我们在这里做的是将SQL代码发送到MySQL(使用PDO::prepare方法)以获取PDOStatement对象(表示在上面的示例中由$stmt
)。然后,我们可以使用PDOStatement::execute将数据(您的$_POST
变量)发送到MySQL的单独路径。请注意SQL查询中的占位符是如何按照您期望的$_POST
变量命名的。因此,SQL 代码永远不会与数据混淆,并且SQL injection没有机会。
有关使用prepared statements的详细信息,请参阅手册。