Php 在数据库mysql中查看转义字符?

Php 在数据库mysql中查看转义字符?,php,mysql,mysqli,prepared-statement,Php,Mysql,Mysqli,Prepared Statement,我正在使用mysqli prepared语句将值插入数据库。我知道这个扩展可以正确地处理字符转义 我有一个文件路径:images/serveover/Bellini 83.png,插入后我希望看到的是数据库中带有转义字符的文件路径,类似于images\/serveover\/Bellini 83.png,但我只看到图像路径的原样 如何确保我的字符串已正确转义?这是phpMyAdmin中的视图标准,它不显示转义字符,还是只是在视图中隐藏转义字符 下面是我的insert PREADED语句,其中包含

我正在使用mysqli prepared语句将值插入数据库。我知道这个扩展可以正确地处理字符转义

我有一个文件路径:
images/serveover/Bellini 83.png
,插入后我希望看到的是数据库中带有转义字符的文件路径,类似于
images\/serveover\/Bellini 83.png
,但我只看到图像路径的原样

如何确保我的字符串已正确转义?这是phpMyAdmin中的视图标准,它不显示转义字符,还是只是在视图中隐藏转义字符

下面是我的insert PREADED语句,其中包含正确填充所有值的参数:

 $insertQuery  = $conn -> prepare("INSERT INTO images (image_id, image_date_created, image_date_modified, image_title, image_src, category_id, image_status, image_external_file, another_id) VALUES (null, NOW(), CURRENT_TIMESTAMP, ?, ?, ?,'A', ?, ?)");

 if($insertQuery ) 
 {              
    $insertQuery -> bind_param("ssisi", $title, $image, $row["category_id"], $file, $row["id"]);            
    $insertQuery -> execute();              
    $insertQuery -> close();
  } 

只要处理字符串,转义过程就会简单地指示MySQL忽略字符的特殊属性,并将其视为普通字符

鲍勃的特殊弦

输入数据库作为

鲍勃的特殊弦

需要注意的是,预先准备好的语句根本不使用转义。Prepared语句在一个集合中发送查询,在另一个集合中发送数据,因此MySQL不需要转义它,因为它知道这是要存储的实际值

您可以在MySQL手册中阅读有关该过程的更多信息

只要处理字符串,转义过程就会简单地指示MySQL忽略字符的特殊属性,并将其视为普通字符

鲍勃的特殊弦

输入数据库作为

鲍勃的特殊弦

需要注意的是,预先准备好的语句根本不使用转义。Prepared语句在一个集合中发送查询,在另一个集合中发送数据,因此MySQL不需要转义它,因为它知道这是要存储的实际值

您可以在MySQL手册中阅读有关该过程的更多信息

您可以对字符进行转义,以便将其干净地插入数据库中,这样它就不会使用转义将其存储在数据库中,而是作为简单的数据。。。。如果数据没有正确转义,那么它将无法插入数据库,因此它不一定通过向字符串中添加“\”来转义字符,对吗?请注意,如果您在准备好的语句中使用绑定变量,那么这将有效地为您“转义”字符串,您自己不会这样做。。。。但是如果您没有使用绑定变量,那么SQL将不知道
是否是字符串的一部分,或者是否标记了字符串的结尾,除非您对itAlright@MarkBaker进行了转义,这非常有用。非常感谢。您对字符进行转义,以便可以将其干净地插入数据库,因此它不会使用转义将其存储在数据库中,而是作为简单的数据。。。。如果数据没有正确转义,那么它将无法插入数据库,因此它不一定通过向字符串中添加“\”来转义字符,对吗?请注意,如果您在准备好的语句中使用绑定变量,那么这将有效地为您“转义”字符串,您自己不会这样做。。。。但是如果您没有使用绑定变量,那么SQL将不知道
是否是字符串的一部分,或者是否标记了字符串的结尾,除非您对itAlright@MarkBaker进行了转义,这非常有用。非常感谢。如果我有
$city=“'s Hertogenbosch”$city=mysqli\u real\u escape\u字符串($link,$city)
我将在数据库中看到
的Hertogenbosch
,对吗?如果是,这里的转义过程到底在做什么?它只是通知DB引擎有一个特殊字符,并且不影响字符串插入DB的方式吗?不,转义的工作方式与您认为的完全一样,在麻烦的
'
前面添加反斜杠之后,DB引擎将
'
视为普通字符,并将其保存为普通字符。我想我理解了这一点。感谢您的帮助:)如果我有
$city=“'s Hertogenbosch”$city=mysqli\u real\u escape\u字符串($link,$city)
我将在数据库中看到
的Hertogenbosch
,对吗?如果是,这里的转义过程到底在做什么?它只是通知DB引擎有一个特殊字符,并且不影响字符串插入DB的方式吗?不,转义的工作方式与您认为的完全一样,在麻烦的
'
前面添加反斜杠之后,DB引擎将
'
视为普通字符,并将其保存为普通字符。我想我理解了这一点。谢谢你的帮助:)