因此,我一直试图找出UPDATE SQL查询的问题所在,并在此处搜索所有问题,才发现问题出在数据库表中正在更新的实际文本上。我的PHP应用程序是一个简单的应用程序,仅用于向表(链接)添加带有说明的简单网站链接,如下所示:

<form action="update.php" method="post">
   <p><input type="text" name="description" value="<?php echo($desc); ?>" /></p>
   <p><input type="text" name="link" value="<?php echo($link); ?>" /></p>
   <p><input type="submit" value="Save Changes" /></p>
</form>


显然,这段代码来自edit.php页面,但是当我尝试在update.php中执行UPDATE语句时,抛出了一个错误,指出语法存在问题。例如,仅当文本中有一个'时,才会出现这种情况:

描述:“妈妈的传统网站”

如果我将“妈妈”中的“”设为“妈妈”,那么它会更新!谁能提供一个解释为什么这样做以及可能的解决方法/代码来解决该问题?

预先感谢您的帮助!

戴夫

最佳答案

使用PDO进行数据库处理

最好先清理数据

$data = sanitize("Mom's");
function sanitize($data){
        $data= htmlentities(strip_tags(trim($data)));
        return $data;
    }


安全方式

$name = "Mom's";
$db = new PDO('mysql:host=localhost;dbname=databasename', $user, $pass);
//establish new connection

$statement = $database->prepare("UPDATE TABLE xyz SET name=?");
$statement->execute(array($name));


这将更加安全。您不需要手动转义。

或使用

$msg =  mysql_real_escape_string($string);


插入数据之前

10-07 19:45
查看更多