我真的很感激任何幫助,我可以得到這一點。mysql_real_escape_string被忽略
我有一個形式,真正的麻煩,我不能似乎得到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>
然後,數據是n要表輸入使用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";
?>
(連接細節改變)
當我輸入事件名稱Ò 「裏利‘Smith’的它被插入到MySQL表作爲O'Rielly‘史密斯’
有是沒有反斜槓,沒有逃脫。
我真的已經蒐羅互聯網試圖來解決這一問題,但它似乎適用於其他人。
我是否在這裏誤解了一些基本的東西? 如果有人能引導我走向正確的方向,我會深表感謝。
這是我在這個論壇上的第一篇文章,並且HTML和代碼格式不似乎是一樣的我曾參觀過最論壇,你不能預覽,所以我希望這原來確定。
提前向任何人提供幫助。 乾杯。
忘記mysql_real_escape_string。改用mysqli或PDO並綁定參數。 – Quentin
你怎麼知道它在做什麼?你在迴應'$ name'嗎? –
對不起,它不回答你的問題,但我強烈建議切換到沿着PDO的路線。 Mysql函數從PHP版本5.4開始被棄用。 –