我希望能够添加和更新某些信息。现在一切正常,直到发现文本中的引号被发送到数据库时,我发现脚本不再有效。
所以我做了一些研究,发现我必须使用mysql_real_escape_string()
函数来忽略引号。我已经完成了这个,但现在脚本已经不能正常工作了。我认为问题出在查询部分,但我没有看到问题。以下是代码:
<?php
if(isset($_POST['bevestiging']))
{
$ID = (int)$_GET['ID'];
$titel = mysql_real_escape_string($_POST['Titel']);
$ondertitel = mysql_real_escape_string($_POST['ondertitel']);
$wanneer = mysql_real_escape_string($_POST['wanneer']);
$datum = mysql_real_escape_string($_POST['datum']);
$afbeelding = mysql_real_escape_string($_POST['afbeelding']);
$intro = mysql_real_escape_string($_POST['intro']);
$main = mysql_real_escape_string($_POST['main']);
$query = "UPDATE voorstellingen
SET '$titel','$ondertitel','$wanneer','$datum','$afbeelding','$intro','$main'
WHERE id = $ID";
mysql_query($query) or die('Error, bewerken van voorstelling is mislukt');
$query ="FLUSH PRIVILEGES";
echo"De voorstelling is succesvol bewerkt";
}
else{
$ID = (int)$_GET['ID'];
$query="SELECT * FROM voorstellingen WHERE id = $ID";
$result = mysql_query($query) or die('Error, bewerken van voorstelling is mislukt');;
?>
答案 0 :(得分:4)
答案 1 :(得分:0)
mysql_real_escape_string
函数返回错误FALSE
。您可以查看以下行的返回类型
$titel = mysql_real_escape_string($_POST['Titel']);
看它是否成功。您无需检查下一行。如果第一次函数调用出错,很可能意味着在调用函数之前没有SQL连接。因为在使用mysql_real_escape_string()
之前需要MySQL连接,否则会生成级别E_WARNING
的错误,并返回FALSE
。
如果上述建议无法解决您的问题,请详细说明您面临的错误以及在哪一行。