Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL更新查询赢得';我不能用PHP工作_Php_Mysql_Sql Update - Fatal编程技术网

SQL更新查询赢得';我不能用PHP工作

SQL更新查询赢得';我不能用PHP工作,php,mysql,sql-update,Php,Mysql,Sql Update,因此,我一直在试图找出我的更新SQL查询的问题所在,并搜索了这里的问题,结果发现问题在于数据库表中正在更新的实际文本。我的PHP应用程序是一个简单的应用程序,只用于添加简单的网站链接,并在表(链接)中添加说明,如下所示: <form action="update.php" method="post"> <p><input type="text" name="description" value="<?php echo($desc); ?>" /&g

因此,我一直在试图找出我的更新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>


在SQL中插入's'会引发错误,这是危险的。它被称为SQL注入。尝试使用诸如htmlentities()或addslashes()之类的PHP函数来处理“before insertion.”

,因为当它最终转换为Update语句时

...somecolname = 'Mum's.....'

单引号看起来像字符串的结尾。需要替换为两个单引号。在将它们组合到语句中之前,请使用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);

在插入数据之前

如果您使用mysql库,请使用mysql real escape string。在update.phpha中发布您的代码您查看了最终生成的HTML吗?SQL注入并不是简单地在SQL中插入一个
'
。。。插入一个
是非常有效的,但必须对其进行转义,无论是在代码中手动转义,还是通过使用准备好的语句转义。感谢您提供的信息,它非常有效!非常感谢!