PHP BLOB字段数据与原始数据不同

时间:2013-12-31 04:27:19

标签: php mysql

在处理来自iOS NSData源的BLOG字段时,我遇到了一个奇怪的问题。我将它传递给PHP Web服务。

原始源的长度为10159.当PHP源到达Web服务时,其长度为10159。我在MYSQL中启用了常规日志记录,并验证了准备好的语句实际上是从客户端发送的原始字节。

这是PHP代码:

//call the stored procedure
$stmt2 = $this->db->prepare("CALL sp_event_master_create(?,?,?,?,?,?,?,?,?,?,?,?, @event_master_id)");
$stmt2->bind_param('sssssssbsssi',   
    $event_name,
    $event_location,
    $mysql_start_date,
    $mysql_end_date,
    $event_website,
    $event_facebook,
    $event_description,
    $event_image,
    $event_contact_name,
    $event_contact_number,
    $event_contact_email,
    $event_app_user_id);

//set the image to be uploaded
$stmt2->send_long_data(7, $event_image);

当我在getById Web服务调用上查询BLOB字段时,返回给客户端的大小已经膨胀到22,325。返回的第一个字节看起来与发送到数据库的原始字节完全不同。

我尝试使用base64_decode返回的blob,但这不起作用。我知道我必须为字段或数据库设置错误。

PHP VERSION :5.5.3

MYSQL VERSION :5.5.34

1 个答案:

答案 0 :(得分:0)

问题似乎实际上是在RESKIT中而不是在PHP或MYSQL中。我将字段转换为MEDIUMTEXT,数据库中的数据是正确的。我可以在Web服务调用上看到JSON数据与发送的内容匹配。

我已在google网上发布了reskit:https://groups.google.com/forum/#!topic/restkit/zMh98jCdGF0