作者pttnews (PTT新闻)
看板PHP
标题[请益] PDO insert to sqlite
时间Wed Sep 11 18:52:41 2013
小弟是PHP新手
想把关於PDO DB 包装在class 档
http://goo.gl/Ryb3mL
__construct() 、SearchHashCode() 运作正常,
但是 SaveHashCode(),就出现
PHP Fatal error: Attempt to unset static property
ImageDB::$pdo in saveImage.php on line 264
发现问题出在
$stmt = self::$pdo->prepare(" INSERT INTO FILE_LIST .....");
$stmt 是 false;
小弟不懂,哪里出错?
因为第一次玩php,按书操课,所以不了解pdo的操作特性,
请给予指导,谢谢~
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 210.63.96.2
1F:→ danny8376:这... 错的好可怕=口= 09/11 19:37
2F:→ danny8376:你的SQL语法... 完全错误啊!!!!!!!!! (X 09/11 19:42
3F:→ danny8376:INSERT INTO XXXX 这个QUERY理的 VALUE 改成 VALUES 09/11 19:42
4F:→ danny8376:再来试试看OwO? 09/11 19:42
5F:→ danny8376:话说是用SQLite啊 09/11 19:44
6F:→ danny8376:还有 是说个人比较喜欢用 ? 来表示参数 09/11 19:47
7F:→ danny8376:给名字虽然方便读 但是整个长很多 -3- 09/11 19:47
8F:推 PsMonkey:都包物件了,$dbFile 不用传值传给 ctor 吗? [完全离题 09/11 20:41
有!有!有!
我最外层先define $dbFile = "D:\phpWorkspace\db\sqlite.db"
然後
class ImageDB{
private static $pdo;
function __construct(){
global $dbFile;
.........
}
我用这种方法,传值给ctor,因为我不知道PHP 的建构函式是否可以传值?
9F:→ danny8376:阿... 又看了一下... 09/11 22:06
10F:→ danny8376:发现SQL语法确实有小错... 但是... 09/11 22:07
11F:→ danny8376:为啥为有 unset(self::$pdo); 啦! 错误都跟你说了 09/11 22:07
12F:→ danny8376:Attempt to unset static property 09/11 22:08
13F:→ danny8376:为啥会尝试去unset一个类别里的static var啦 09/11 22:10
14F:→ danny8376:再说要是真的被unset掉了 也没东西可以跑prepare了啦 09/11 22:11
15F:→ danny8376:话说楼上也是个好问题 都包物件了 却写死颇怪啊XD 09/11 22:13
谢谢danny 大德
我SQL 给错指令了, (羞羞脸)
修正以後
$stmt = self::$pdo->prepare(" INSERT INTO FILE_LIST .....
$stmt 不再是false,而且後面也顺了...
至於unset 是我东试西搞,因为找不出问题,胡乱加上去,看看是不是这状况,
放demo 时忘了拿走
顺便问一下 当我做完一个sql 不管是select 还是 insert 是不是都要
把 PDOStatement unset ?
不做会不会出问题?
※ 编辑: pttnews 来自: 210.63.96.2 (09/12 11:18)
16F:→ danny8376:恩... 这位大大啊... 那个语言的constructor不能 09/12 14:04
17F:→ danny8376:下参数啊... 难不成还设计成内部专用? 09/12 14:04
18F:→ danny8376:(总不至於OO了还不能给参数new自己要的东西吧?) 09/12 14:05
19F:→ danny8376:都物件化了 就都给GC自己去处理就好 09/12 14:09
20F:→ danny8376:然後每个statement都是独立的 不过要多次的execute 09/12 14:10
21F:→ danny8376:要看DB了 不过连续execute有问题也就加行closeCursor() 09/12 14:11
22F:→ danny8376:说真的 有点不知刚刚在回啥XD 09/12 14:12
我了解~ 谢谢danny 大
※ 编辑: pttnews 来自: 210.63.96.2 (09/13 09:37)