[請益] 遇到一個棘手的問題(資料型態遺失)

看板PHP作者 (貓奴一隻)時間14年前 (2011/02/17 21:10), 編輯推噓1(103)
留言4則, 2人參與, 最新討論串1/1
前陣子將PHP改用版本5.3.4 發現SQL 2005不能連 因為php_mssql.dll不能使用 => 爬文改用 微軟官方提供的 sqlsrv 安裝完成後 整個程式原本呼叫mssql的部分都修改為sqlsrv完畢 檢查原本程式是否恢復"正常"時 發現一直有錯誤 sqlsrv_fetch_array(): 13 is not a valid ss_sqlsrv_stmt resource 大概的寫法是 function A($sql) { //以上略.. $get = sqlsrv_query($conn,$sql, array(), array("Scrollable" =>SQLSRV_CURSOR_STATIC)); echo "A:".gettype($get); //檢測資料型態 return $get; } function B() { $sql = '...'; $getA = A($sql); echo "B".gettype($getA); //檢測資料型態 $row_getA = sqlsrv_fetch_array($getA, SQLSRV_FETCH_ASSOC); } 在黃色的行數(最後一行)出現錯誤的! 找到的原因是A印出來的資料型態為resource B印出的資料型態為unknown type 嘗試用settype強制將$getA轉為resource會出錯 從B先產生$getA用傳址呼叫的方式丟到A,指定為$get再從B印出來也是unknown 只要離開function A() 好像就掛掉了(我也要掛掉了~~阿~~~) 整個網站都是用A()先搜尋 而B的寫法分散整個網站的class中 有人知道如何讓return後保留resource資料型態嗎? 或者該怎麼挽救這悽慘的局面 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.67.240.99 ※ 編輯: maplenote 來自: 203.67.240.99 (02/17 21:11)

02/17 23:39, , 1F
看來dll爆了.
02/17 23:39, 1F

02/18 09:08, , 2F
DLL爆了是什麼意思@@?
02/18 09:08, 2F

02/18 09:12, , 3F
s大說的 function &A(&$sql) 也不行><"
02/18 09:12, 3F

02/18 09:43, , 4F
找到原因了T_T 因為$conn在A()中新增,離開A就死掉了
02/18 09:43, 4F
文章代碼(AID): #1DNHvDH2 (PHP)
文章代碼(AID): #1DNHvDH2 (PHP)