|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2003-04-15 21:01 UTC] xswang2000 at 163 dot com
I have custom the session handle function using "session_set_save_handler()"(use oracle8i save session data),when I input string into variable,the system popup error message : php.exe :application error: "0x77fcb7ae" ... this memory cannot written . thanks . PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Mon Oct 27 00:00:01 2025 UTC |
can not use "session_set_save_handler()" save session data to oracle8i database ,the system always popup error message :php.exe :application error: "0x77fcb7ae" ... this memory cannot written . Source Code (File Name:session_oracle.php): <? $SESS_DBH = ""; $SESS_LIFE = get_cfg_var("session.gc_maxlifetime"); function sess_open($save_path, $session_name) { //global $SESS_DBHOST, $SESS_DBNAME, $SESS_DBUSER, $SESS_DBPASS, $SESS_DBH; global $SESS_DBH ; $SESS_DBH = connection() ; return true; } function sess_close() { return true; } function sess_read($key) { global $SESS_DBH, $SESS_LIFE; $qry_r = "SELECT value FROM sessions WHERE sesskey = '$key' AND expiry > " . time(); echo $qry_r ; $stmt_r = OCIParse($SESS_DBH,$qry_r) ; OCIdefinebyname($stmt_r,"VALUE",$value) ; OCIExecute($stmt_r) ; //if (list($value) = OCIFetch($stmt_r)) { //if (list($value) = OCIFetchInto($stmt_r, $row, OCI_ASSOC)) { while (ocifetch($stmt_r)) { // echo "<BR>Value :".$value."<BR>" ; return $value; } OCIFreeStatement($stmt_r) ; return false ; } function sess_write($key, $val) { global $SESS_DBH, $SESS_LIFE; $expiry = time() + $SESS_LIFE; $value = addslashes($val); $qry_i = " INSERT INTO sessions VALUES ('".$key."', ".$expiry.", '".$value."') "; $stmt_i = OCIParse($SESS_DBH,$qry_i) ; $qid_i = @OCIExecute($stmt_i) ; OCICommit($SESS_DBH); if (! $qid_i ) { $qry_u = "UPDATE sessions SET expiry = ".$expiry.", value = '".$value."' WHERE sesskey = '".$key."' AND expiry > " . time(); //echo $qry_u."<BR>" ; $stmt_u = OCIParse($SESS_DBH,$qry_u) ; $qid_u = OCIExecute($stmt_u) ; OCICommit($SESS_DBH); OCIFreeStatement($stmt_u) ; } OCIFreeStatement($stmt_i) ; return $qid_i; } function sess_destroy($key) { global $SESS_DBH; $qry_d = "DELETE FROM sessions WHERE sesskey = '$key'"; $stmt_d = OCIParse($SESS_DBH,$qry_d) ; $qid = OCIExecute($stmt_d) ; OCICommit($SESS_DBH); OCIFreeStatement($stmt_d) ; return $qid; } function sess_gc($maxlifetime) { global $SESS_DBH; $qry = "DELETE FROM sessions WHERE expiry < " . time(); $stmt = OCIParse($SESS_DBH,$qry) ; $qid = OCIExecute($stmt) ; OCICommit($SESS_DBH); $rec_count = OCIRowCount($stmt) ; OCIFreeStatement($stmt) ; return $rec_count ; } session_set_save_handler( "sess_open", "sess_close", "sess_read", "sess_write", "sess_destroy", "sess_gc"); ?>