[請益] PDO insert to sqlite

看板PHP作者 (PTT新聞)時間12年前 (2013/09/11 18:52), 編輯推噓1(1021)
留言22則, 2人參與, 最新討論串1/1
小弟是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

09/11 19:37, , 1F
這... 錯的好可怕=口=
09/11 19:37, 1F

09/11 19:42, , 2F
你的SQL語法... 完全錯誤啊!!!!!!!!! (X
09/11 19:42, 2F

09/11 19:42, , 3F
INSERT INTO XXXX 這個QUERY理的 VALUE 改成 VALUES
09/11 19:42, 3F

09/11 19:42, , 4F
再來試試看OwO?
09/11 19:42, 4F

09/11 19:44, , 5F
話說是用SQLite啊
09/11 19:44, 5F

09/11 19:47, , 6F
還有 是說個人比較喜歡用 ? 來表示參數
09/11 19:47, 6F

09/11 19:47, , 7F
給名字雖然方便讀 但是整個長很多 -3-
09/11 19:47, 7F

09/11 20:41, , 8F
都包物件了,$dbFile 不用傳值傳給 ctor 嗎? [完全離題
09/11 20:41, 8F
有!有!有! 我最外層先define $dbFile = "D:\phpWorkspace\db\sqlite.db" 然後 class ImageDB{ private static $pdo; function __construct(){ global $dbFile; ......... } 我用這種方法,傳值給ctor,因為我不知道PHP 的建構函式是否可以傳值?

09/11 22:06, , 9F
阿... 又看了一下...
09/11 22:06, 9F

09/11 22:07, , 10F
發現SQL語法確實有小錯... 但是...
09/11 22:07, 10F

09/11 22:07, , 11F
為啥為有 unset(self::$pdo); 啦! 錯誤都跟你說了
09/11 22:07, 11F

09/11 22:08, , 12F
Attempt to unset static property
09/11 22:08, 12F

09/11 22:10, , 13F
為啥會嘗試去unset一個類別裡的static var啦
09/11 22:10, 13F

09/11 22:11, , 14F
再說要是真的被unset掉了 也沒東西可以跑prepare了啦
09/11 22:11, 14F

09/11 22:13, , 15F
話說樓上也是個好問題 都包物件了 卻寫死頗怪啊XD
09/11 22:13, 15F
謝謝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)

09/12 14:04, , 16F
恩... 這位大大啊... 那個語言的constructor不能
09/12 14:04, 16F

09/12 14:04, , 17F
下參數啊... 難不成還設計成內部專用?
09/12 14:04, 17F

09/12 14:05, , 18F
(總不至於OO了還不能給參數new自己要的東西吧?)
09/12 14:05, 18F

09/12 14:09, , 19F
都物件化了 就都給GC自己去處理就好
09/12 14:09, 19F

09/12 14:10, , 20F
然後每個statement都是獨立的 不過要多次的execute
09/12 14:10, 20F

09/12 14:11, , 21F
要看DB了 不過連續execute有問題也就加行closeCursor()
09/12 14:11, 21F

09/12 14:12, , 22F
說真的 有點不知剛剛在回啥XD
09/12 14:12, 22F
我了解~ 謝謝danny 大 ※ 編輯: pttnews 來自: 210.63.96.2 (09/13 09:37)
文章代碼(AID): #1IC4jz09 (PHP)
文章代碼(AID): #1IC4jz09 (PHP)