gpt4 book ai didi

php - mysql_real_escape_string 被忽略

转载 作者:太空宇宙 更新时间:2023-11-03 10:21:55 25 4
gpt4 key购买 nike

如果我能得到任何帮助,我将不胜感激。

我在使用表单时遇到了真正的问题,我似乎根本无法让 mysql_real_escape_string 工作。

我将 MySQL 5.5 与 PHP 一起使用,为了测试它,我创建了一个简单的表单Magic Quotes 根本没有打开。

使用这种形式:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<form name="event_ad" action="test.php" method="post">
<table>
<tr>
<td>Event Name:</td>
<td><input name="event_name" type="text" size="90" /></td>
</tr>
<tr>
<td>Start Date:</td>
<td><input name="start_date" type="text" size="90" /></td>
</tr>
<tr>
<td colspan="2" align="center"><input name="Submit" type="submit" id="Submit" value="Add New Event" /></td>
</tr>
</table>
</form>
</body>
</html>

然后使用test.php将数据输入到表中

<?php
mysql_connect("localhost","username","password") or die(mysql_error());
mysql_select_db("databasename") or die(mysql_error());

$name = $_POST['event_name'];
$sdate = $_POST['start_date'];
$name = mysql_real_escape_string($name);

$sql = "INSERT INTO tblevents (event_name, event_date) VALUES ('" . $name . "','" . $sdate . "')";

mysql_query($sql);

echo "success";
?>

(连接详细信息已更改)

当我输入事件名称 O'Rielly "Smith"时,它会作为 O'Rielly "Smith"插入到 MySQL 表中

没有反斜杠,根本没有转义。

我确实已经在互联网上搜索过,试图解决这个问题,但它似乎对其他所有人都有效。

我是不是误解了一些基本的东西?如果有人能引导我朝着正确的方向前进,我将不胜感激。

这是我在这个论坛上的第一篇文章,html 和代码格式似乎与我访问过的大多数论坛不一样,而且您无法预览,所以我希望这一切顺利。

提前感谢任何提供帮助的人。干杯艾尔。

最佳答案

这是设计使然,您不应在表格中看到任何转义输入。它只是用于插入。通过使用 mysql_real_escape_string,您的查询看起来像

INSERT INTO tblevents (event_name, event_date) VALUES ('O\'Rielly \"Smith\"','1.4.2001')";

这些反斜杠确保您不会破坏撇号

MySQL 会“删除”所有反斜杠,直到它们被反斜杠转义为止:)

关于php - mysql_real_escape_string 被忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10433570/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com