我非常感谢我能得到的任何帮助。
我在使用表单时遇到了真正的麻烦,我似乎根本无法让 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 和代码格式似乎与我访问过的大多数论坛不一样,并且您无法预览所以我希望结果可以。
提前感谢任何提供帮助的人。干杯艾尔。