Php Mysql只插入字符串的一部分,不';t报告错误

Php Mysql只插入字符串的一部分,不';t报告错误,php,mysql,sql-injection,Php,Mysql,Sql Injection,我的代码中可能有一些注入错误,但我不知道这是在哪里发生的 $name = 'Toshiba LED TV 32" 32W2333D HD Ready'; $query = "UPDATE `tv` SET `title` = '" . $this->mysqli->real_escape_string($name). "' WHERE `id` = '" . $id . "'"; $prep = $this->mysqli->pre

我的代码中可能有一些注入错误,但我不知道这是在哪里发生的

$name = 'Toshiba LED TV 32" 32W2333D HD Ready';

$query = "UPDATE `tv`
         SET `title` = '" . $this->mysqli->real_escape_string($name). "'
         WHERE `id` = '" . $id . "'";

$prep = $this->mysqli->prepare($query);
$prep->execute();
相反,要获取字段标题:

东芝LED电视32英寸32W2333D高清

我得到:

东芝LED电视32“


您是否尝试过使用绑定参数? 比如:


中的
也可能是错误的<代码>哪里有“42”
?也许它应该是
其中id='42'
之类的。既然您使用的是mysqli,为什么还要手动转义呢?为什么不使用预先准备好的语句和占位符呢?@MarcB可能吧?-不;是肯定错过了一个等号。OP可能没有向我们展示实际使用的代码。编辑:已更改。@Fred ii-我补充说,对不起,没有id字段只是想给出示例。如果您将$name作为东芝LED TV 32 32W2333D HD传递,您是否仍有此问题?或者标题字段设置为varchar(18)?
$query = $mysqli->prepare("UPDATE tv SET title = ? WHERE id = ?");
$statement = $mysqli->prepare($query);

$results =  $statement->bind_param($product_title, $find_id);