因此,我一直试图找出 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 语句时,它会抛出一个错误,指出语法存在问题。这似乎仅在文本中有 ' 时发生,例如:
描述:“妈妈的补习网站”
如果我把“Mum's”中的 ' 去掉,使其成为“Mums”,那么它就会更新得很好!任何人都可以解释为什么这样做以及解决该问题的可能补救措施/代码吗?
提前感谢您的帮助!
戴夫。
最佳答案
使用 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);
插入数据之前
关于php - SQL 更新查询在 PHP 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19078472/