0

我希望能够添加和更新某些信息。现在一切正常,直到我发现当文本中有引号发送到数据库时脚本不再工作。

所以我做了一些研究,发现我不得不使用这个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');;
?>
4

2 回答 2

4

您的更新查询应如下所示:

$query = "UPDATE voorstellingen SET title = '".$titel."' .....";

请参阅:更新语法

于 2012-06-14T10:35:00.953 回答
0

mysql_real_escape_string函数返回FALSE错误。您可以检查以下行的返回类型

$titel = mysql_real_escape_string($_POST['Titel']);

看看它是否成功。您无需检查下一行。如果第一次函数调用出错,很可能意味着在调用函数之前不存在 SQL 连接。因为在使用之前需要一个 MySQL 连接,mysql_real_escape_string()否则会产生一个级别的错误E_WARNING,并FALSE返回。

如果上述建议不能解决您的问题,请详细说明您到底面临什么错误以及在哪一行。

于 2012-06-14T10:58:21.667 回答