php - SQL 更新查询在 PHP 中不起作用

标签 php mysql sql-update

因此,我一直试图找出 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/

相关文章:

sql - 更新与唯一索引冲突的多行

php - 切换 PHP 渲染引擎有什么影响?

php - 无法从 Nest 服务器获取访问 token

javascript - 如何将 bootstrap 年历与 mysql 库连接

php - 在数据库中搜索忽略特殊字符的电话号码

mysql - 如何在 UPDATE 语句中使用 JOIN?

php - 在 Blade 中用星星显示等级的方法。拉拉维尔

php - MySQL 查询字符串包含相反的内容

php - 如何在laravel 5.1中访问子函数内父函数的参数

sql - 重命名 PostgreSQL 中的多个列