作者foxzgerald (O⊥M)
看板PHP
标题Re: [请益] 如何用PHP读取已存在Mysql的BLOB图档资 …
时间Thu May 24 16:06:21 2007
※ 引述《taikobo (有比扯铃扯吗?)》之铭言:
: ~Second.php~
: <?PHP
: 《连接资料库》
: $result = $link->query("SELECT p1 FROM t where s_num=$id");
: $row= $result->fetch_object();
: header(jpg);
^^^^^^^^^^^^ 这个地方可能有点问题,应该要符合 http header 的格式,
除非你之前有 define('jpg', 'Content-type: image/jpeg');
否则应该是:header("Content-type: image/jpeg");
1F:推 shadowjohn:你必需要把一整个档案当作一个header後的jpeg或gif才行 05/24 15:10
2F:→ shadowjohn:而且图片外不可以有任何字,也不能有空白,要很乾净 05/24 15:10
: echo $row->image;
^^^^^^^^^^^^^^^^^ 这部分应如 shadowjohn 所说的,除了图片二元档外,
不应参有其他东西;
假设在 header() 之前有任何程序产生错误码、并 print out..
那麽会造成图片显示上的一些错误,如:无法显示图片等
: ?>
: ==大概是这个样子==
: 全域变数的问题是我耍笨了...把程式重新改写
: 经过改写无效,错误讯息也变了
: ==错误讯息==
: Fatal error: Call to a member function query() on a non-object in C:\Program
: Files\Apache Software Foundation\Apache2.2\htdocs\Second.php on
: line 4
: ============
: $result = $link->query("SELECT p1 FROM t where s_num=$id");
3F:推 alpe:现在是你 的$link 是物件吗?? 05/24 15:28
4F:→ alpe:php mysqli / mysql 05/24 15:29
如 alpe 所提示的,产生错误的可能是红色的这段程式码。
如果 $link 是 mysqli 所产生的资料库连结(资源)物件、
或是其他提供 query() 方法的物件,才能这样用。
依错误讯息,$link 应该不是个物件;请检查一下资料库的连结程式是否正确。
--
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.119.199.121
5F:推 taikobo:很详尽的解说,真的很感谢您热心的帮忙...好感动^^ 05/24 16:11
※ 编辑: foxzgerald 来自: 140.119.199.121 (05/24 16:15)
6F:推 shadowjohn:(心) 05/24 16:39
7F:→ shadowjohn:我的相簿也都存db...show图自动压缩..上传自动压图... 05/24 16:40
8F:→ shadowjohn:配合GD後制图片可以作很多事~像浮水印、加密、缩放图 05/24 16:41
9F:→ shadowjohn:不过我的栏位是用longtext,不是用blob,可以试看看 05/24 16:42
10F:→ shadowjohn:MySQL的BLOB大小有64K, 纯二元码可以考虑用MEDIUMBLOB 05/24 16:43
11F:→ shadowjohn:或 LONGBLOB ,我用longtext...因为我还转成base64.. 05/24 16:44
12F:推 foxzgerald:转成字串的话. 要注意处理脱序字元的问题.. 05/24 16:47
13F:→ foxzgerald:如果要转成 base64 ..可参考我在 2982 所做的回应 :) 05/24 16:53
14F:推 shadowjohn:其实可以直接用php 5.2以上版本跟mysql 5.0.26以上... 05/24 16:55
15F:推 shadowjohn:好文! 05/24 16:57