在mysql中插入文件字节码时出现php错误

标签 php mysql

我有一个大问题

当我尝试将查询字符串放入文件时出现以下错误

不正确的字符串值:'\XE6\x00\x00\xfd\xfd\xfd ...'

INSERT INTO `web_plugins` (`nome`, `xmllocal_nome`, `icone_url`, `icone_bytecode`, `swf_url`, `swf_bytecode`) VALUES ('asdfasdf', 'wqwerrwe', '/assets/uploads/plugins_icons/f2d2d3d9.gif', 'GIF89a\0\0�\0\0������������������������������������������������������������������������������������������������������������������������������~~~}}}|||{{{zzzyyywwwvvvuuutttsssrrrqqqpppooonnnmmmjjjfffdddbbb```___]]]\\\\\\ZZZYYYXXXWWWRRRQQQCCC@@@888���\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0!�\0\0Q\0,\0\0\0\0\0\0\0��\'KP?BI2/?\02G&-*8\'+;\rNL:!.\"%)\"\'&\'-=B!1)$(%&$�1H;+\',-(&%%#�!4\Z\'))�Ժ(##!94)*$#�\'*&# \"#-/\'\"��$! <>!$!!\"HP���2>���_��p���c��,�H����6F�:�Qr+4�0aF�b�L�8�� \n���b&�]�Ø�I�

最佳答案

您应该将 gif 保存在 BLOB 列中。

想象下表:

CREATE TABLE testblob(
  id INT AUTO_INCREMENT ,
  data MEDIUMBLOB,
  PRIMARY KEY ( id )
) ENGINE = InnoDB;

然后你可以使用下面的INSERT代码:

<?php
    $dbh = mysql_connect("localhost", "user");
    mysql_select_db("test");
    $data = file_get_contents("your.gif");
    // This is important to avoid a ' to accidentally close a string
    $data = mysql_real_escape_string($data);
    mysql_query("INSERT INTO testblob(data) VALUES ('$data')");
?>

请注意,这是取自 article来自网络。感谢作者。

您还应该注意,mysql_* 扩展已被标记为弃用。您应该改用 PDO 或 mysqli 扩展。我个人更喜欢 PDO。下面是一个使用 PDO 的例子:

$conn = new PDO("mysql:host=$dbhost;dbname=$dbname",$dbuser,$dbpass);

// create a prepared statement
$stmt = $conn->prepare('INSERT INTO `testblob` (`data`) VALUES (:data)');    
// assign the blob value to it
$stmt->bindParam(1, file_get_contents('your.gif'), PDO::PARAM_LOB);

// execute the statemt
$stmt->execute();

关于在mysql中插入文件字节码时出现php错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16176416/

相关文章:

php - 无法发送数据以在数据库中创建新产品

Mysql Subpartioning--按天分区然后取一个值

php - 图片上传 php : undefined index 的问题

php - 是否有任何特殊规则使用 foreach 和 while 循环(使用 each() 函数)在 php 中迭代数组?

php - Laravel Eloquent 5.1 高效更新相关模型

php - 通过 php post 方法将 URL 放入数据库

mysql - 在mysql中加密密码时出错

php - 更改 while 循环的输出样式

mysql - 在不使用代码服务器的情况下同时更新和转换列的值

PHP post_max_size vs upload_max_filesize,有什么区别?