Php 如何正确使用mysqli\u real\u escape\u字符串
我有一个问题,我就是无法解决 在将名称保存到mysql数据库时,如果名称包含撇号(单引号),我会得到意外的结果 我使用Php 如何正确使用mysqli\u real\u escape\u字符串,php,mysqli,Php,Mysqli,我有一个问题,我就是无法解决 在将名称保存到mysql数据库时,如果名称包含撇号(单引号),我会得到意外的结果 我使用$name=mysqli\u real\u escape\u字符串($con,$name)保存了名称其中,$con是连接字符串,$name是名称。然而,我得到的不是彼得·奥图尔,而是彼得·奥图尔 有人能告诉我哪里出了问题吗?当您将mysql改为mysqli时,不需要使用相同的样式,请使用准备好的语句 旧式 $name = mysqli_real_escape_string($_P
$name=mysqli\u real\u escape\u字符串($con,$name)保存了名称
其中,$con
是连接字符串,$name
是名称。然而,我得到的不是彼得·奥图尔,而是彼得·奥图尔
有人能告诉我哪里出了问题吗?当您将mysql改为mysqli时,不需要使用相同的样式,请使用准备好的语句 旧式
$name = mysqli_real_escape_string($_POST['name']);
$email = mysqli_real_escape_string($_POST['email']);
$password = mysqli_real_escape_string($_POST['password']);
$sql = "INSERT INTO `user`(name, email, password) VALUES('$name', '$email', '$password'));
$mysql_query($sql) or die(mysql_error());
在bind_param()
通知日期类型:
s => string
i => integer
d => double
b => blob
准备好的斯塔门特斯风格
$db = new mysqli(...);
$sql = "INSERT INTO `user`(name, email, password) VALUES(?,?,?)";
$stmt = $db->prepare($sql);
$stmt->bind_param('sss', $name, $email, $password);
if(!$stmt->execute()){
echo $db->error;
}
如果你使用参数化查询(就像你应该做的那样),你就不必再转义字符串了。你能不能回答这个问题,或者提供一些信息让你的建议更人性化一点?我评论道,因为我没有时间写一个合适的答案。这并不是什么新鲜事(10年前发布),因此搜索mysqli prepared语句或mysqli参数化查询应该会给您带来大量的编写/教程。您所说的“您可以按要求回答问题还是提供…”是什么意思?好了,现在开始从数据库中获取信息