因此,我一直试图找出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);
插入数据之前