【问题标题】:Trying to insert image into blob field试图将图像插入 blob 字段
【发布时间】:2011-08-02 01:12:53
【问题描述】:

我正在尝试通过带有 php 的 web 表单将一个小图像插入到 mysql 数据库中。但它不起作用。怎么了?

表格:

<form action="http://www.yeahthatrocks.com/update2.php" method="post" enctype="multipart/form-data">
Game Name:  <input name="game_name" type="text" size="25" maxlength="255" /><br></br>
Release Date:  <input name="release_date" type="text" size="25" /><p></p>
<input type="hidden" name="MAX_FILE_SIZE" value="2000000">
Cover Image: <input type="file" name="cover" id="cover"><br><br>
<input name="upload" type="submit" id="upload" value="upload" />
</form>

插入图片查询:

$fileName = $_FILES['cover']['name'];
 $tmpName = $_FILES['cover']['tmp_name'];
 $fileSize = $_FILES['cover']['size'];
 $fileType = $_FILES['cover']['type'];

 $fp = fopen($tmpName, 'r');
 $content = fread($fp, filesize($tmpName));
 $content = addslashes($content);
 fclose($fp);

 if(!get_magic_quotes_gpc())
 {
$fileName = addslashes($fileName);
 }

$query = "INSERT INTO games set name='".$fileName."', size='".$fileSize."', type='".$fileType."', content='".$content."'";
 mysql_query($query) ;

【问题讨论】:

  • 我有点想问您是否已打开计算机 :) 您是否收到某种错误消息?
  • 是的,计算机已打开...大声笑。没有错误消息,只是没有上传文件。

标签: php mysql blob


【解决方案1】:

很可能是addslashes()。使用real escape function,或者更好的是parameterized queries

【讨论】:

  • 没什么,你问什么? 在编辑答案时天真地吹着口哨
【解决方案2】:

这是一个一直对我有用的简单示例:

# create table blobs( id int(11) NOT NULL auto_increment, myblob longblob, PRIMARY KEY (id));


$host     = "localhost";
$username = "blobtest";
$password = "blobtest";
$database = "blobtest";

$link_id = @mysql_connect($host, $username, $password);
@mysql_select_db($database);

$blob = file_get_contents('stripe.png');
$bdata = addslashes($blob);

$qry = "INSERT INTO blobs VALUES(NULL, '$bdata')";
mysql_query($qry);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-08
    • 2019-01-26
    • 2015-11-03
    • 2021-02-17
    • 2017-01-12
    • 2013-03-21
    相关资源
    最近更新 更多