自托的MongoDb单引号问题

时间:2016-11-09 06:36:12

标签: php mongodb parse-platform

随着Parse关闭,我们已将我们的应用数据迁移到自托管的mongodb。

但是我们遇到了单引号的问题。

例如:

这是新的一天。

当数据库由parse本身托管时,我们从来没有遇到过这个问题,也从不需要额外的代码来逃避单引号,但现在在迁移解析并使用自托管的mongodb之后我们就遇到了这个问题。

MongoDb数据

{ "_id" : "vryoEYQqDt", "rowid" : 9, "image" : "982621c6338150d34c345ee62baa3420_outlet-335936476.jpg", "_created_at" : ISODate("2015-03-03T09:08:43.217Z"), "_updated_at" : ISODate("2016-11-09T08:20:21.074Z"), "name" : "Hello World" }

解析插入mongodb的代码

$query = new ParseQuery("prodcuts");
        $query->equalTo("rowid", $rowid);

$object = $query->first();
$object->set("name", $pro_data->name);
try {
    $object->save();

    } catch (ParseException $ex) { 
      // Execute any logic that should take place if the save fails.
      // error is a ParseException object with an error code and message.
      echo 'Failed to create new object, with error message: ' +    $ex->getMessage();
} 

"$pro_data->name" - 从MySql数据库中获取名称。目前“这是新的一天”

当我们执行此代码时。 Mongo数据库更新了"_updated_at" : ISODate("2016-11-09T08:20:21.074Z")字段,但"name" : "Hello World"未更新,因为它有一个未转义的单引号。

即使是Parse也没有任何例外。

有没有一种方法或配置可以在不使用php中的额外代码的情况下转义MongoDb中的单引号?

提前完成。

更新

实际上可能不是单引号没有更新mongo db而是UTF-8字符。

保存前“$ object”的值:

Parse\ParseObject Object
(
    [serverData:protected] => Array
        (
            [rowid] => 9
            [image] => Parse\ParseFile Object
                (
                    [name:Parse\ParseFile:private] => 982621c6338150d34c345ee62baa3420_outlet-335936476.jpg
                    [url:Parse\ParseFile:private] => 
                    [data:Parse\ParseFile:private] => 
                    [mimeType:Parse\ParseFile:private] => 
                )

            [name] => Matzig 33'cl
        )

    [operationSet:protected] => Array
        (
            [name] => Parse\Internal\SetOperation Object
                (
                    [value:Parse\Internal\SetOperation:private] => M?tzig 33'cl
                    [isAssociativeArray:Parse\Internal\SetOperation:private] => 
                )

        )

    [estimatedData:Parse\ParseObject:private] => Array
        (
            [rowid] => 9
            [image] => Parse\ParseFile Object
                (
                    [name:Parse\ParseFile:private] => 982621c6338150d34c345ee62baa3420_outlet-335936476.jpg
                    [url:Parse\ParseFile:private] => 
                    [data:Parse\ParseFile:private] => 
                    [mimeType:Parse\ParseFile:private] => 
                )

            [name] => M?tzig 33'cl
        )

    [dataAvailability:Parse\ParseObject:private] => Array
        (
            [rowid] => 1
            [image] => 1
            [name] => 1
        )

    [className:Parse\ParseObject:private] => products
    [objectId:Parse\ParseObject:private] => vryoEYQqDe
    [createdAt:Parse\ParseObject:private] => DateTime Object
        (
            [date] => 2015-03-03 09:08:43.217000
            [timezone_type] => 2
            [timezone] => Z
        )

    [updatedAt:Parse\ParseObject:private] => DateTime Object
        (
            [date] => 2016-11-10 10:20:35.823000
            [timezone_type] => 2
            [timezone] => Z
        )

    [hasBeenFetched:Parse\ParseObject:private] => 1
)
保存后

$对象值

Parse\ParseObject Object
(
    [serverData:protected] => Array
        (
            [rowid] => 9
            [image] => Parse\ParseFile Object
                (
                    [name:Parse\ParseFile:private] => 982621c6338150d34c345ee62baa3420_outlet-335936476.jpg
                    [url:Parse\ParseFile:private] => 
                    [data:Parse\ParseFile:private] => 
                    [mimeType:Parse\ParseFile:private] => 
                )

            [name] => M?tzig 33'cl
        )

    [operationSet:protected] => Array
        (
        )

    [estimatedData:Parse\ParseObject:private] => Array
        (
            [rowid] => 9
            [image] => Parse\ParseFile Object
                (
                    [name:Parse\ParseFile:private] => 982621c6338150d34c345ee62baa3420_outlet-335936476.jpg
                    [url:Parse\ParseFile:private] => 
                    [data:Parse\ParseFile:private] => 
                    [mimeType:Parse\ParseFile:private] => 
                )

            [name] => M?tzig 33'cl
        )

    [dataAvailability:Parse\ParseObject:private] => Array
        (
            [rowid] => 1
            [image] => 1
            [name] => 1
        )

    [className:Parse\ParseObject:private] => products
    [objectId:Parse\ParseObject:private] => vryoEYQqDe
    [createdAt:Parse\ParseObject:private] => DateTime Object
        (
            [date] => 2015-03-03 09:08:43.217000
            [timezone_type] => 2
            [timezone] => Z
        )

    [updatedAt:Parse\ParseObject:private] => DateTime Object
        (
            [date] => 2016-11-10 10:22:16.878000
            [timezone_type] => 2
            [timezone] => Z
        )

    [hasBeenFetched:Parse\ParseObject:private] => 1
)

这里 M?tzig 33'cl - > == 'ä'

0 个答案:

没有答案