유용한 PHP MySQL 연결 클래스
本文分享一个好用的php与mysql操作类,此mysql类与其它类的不同在于,可以设置表的读、写锁。有需要的朋友参考下吧。
分享一个php与mysql操作类,代码: <?php /** * mysql操作类 * by bbs.it-home.org */ // 定义常量 /** * 是否开启调试模式 */ define("DEBUG", FALSE); /** * 以下变量不要改动 */ /** * 设定表的读锁 */ define("LOCKED_FOR_READ", "READ"); /** * 设定表的写锁 */ define("LOCKED_FOR_WRITE", "WRITE"); /** * HOWTO */ class mySQL { /** * The connection resource id * * @var object */ var $connection; /** * The selected database * * @var object */ var $selectedDb; /** * The result from a select-query * * @var object */ var $result; /** * Flag that tells if you are connected to the database or not * * @var boolean */ var $isConnected; /** * Flag that tells if you the tables are locked or not * * @var boolean */ var $isLocked; /** *This will indicate what querytype the last query was * * @var string */ var $queryType; /** * This is the constructor of this mysql class. * It creates a connection to the database, and if possible it sets the database to * You can specify if you want to use persistant connections or not. * * @param string The host to the mySQL server * @param string The username you use to log on to the mySQL server * @param string The password you use to log on to the mySQL server * @param string The name of the database you wish to use * @param boolean TRUE if you want to use persistant connections. Default is TRUE * @return boolean TRUE when connection was successfull * @access public */ function mySQL($sHost, $sUser, $sPassword, $sDatabase="", $bPersistant=TRUE) { $conFunc = ""; if(!defined("DEBUG")) { define("DEBUG", FALSE); } if($this->getConnected()) { $this->closeConnection(); } if($this->connection = ($bPersistant ? mysql_pconnect($sHost, $sUser, $sPassword) : mysql_connect($sHost, $sUser, $sPassword))) { $this->setConnected(TRUE); if($sDatabase) { $this->setDb($sDatabase); } return TRUE; } else { $this->setConnected(FALSE); return FALSE; } } /** * This is the destructor of this class. It frees the result of a query, * it unlocks all locked tables and close the connection to the database * It does not return anything at all, so you will not know if it was sauccessfull * * @access public */ function _mySQL() { if($this->result) { $this->freeResult(); } if($this->getLocked()) { $this->unlock(); } if($this->getConnected()) { $this->closeConnection(); } } /** * This function frees the result from a query if there is any result. * * @access public */ function freeResult() { if($this->result) { @mysql_free_result($this->result); } } /** * This function executes a query to the database. * The function does not return the result of the query, you must call the * function getQueryResult() to fetch the result * * @param string The query-string to execute * @return boolean TRUE if the query was successfull * @access public */ function query($query) { if(strlen(trim($query)) == 0) { $this->printError("No query got in function query()"); return FALSE; } if(!$this->getConnected()) { $this->printError("Not connected in function query()"); return FALSE; } $queryType = substr(trim($query), 0, strpos($query, " ")); $this->setQueryType($queryType); $this->result = mysql_query($query, $this->connection); if($this->result) { return TRUE; } return FALSE; } /** * Sets the querytype of the last query executed * For example it can be SELECT, UPDATE, DELETE etc. * * @access private */ function setQueryType($type) { $this->queryType = strtoupper($type); } /** * Returns the querytype * * @return string * @access private */ function getQueryType() { return $this->queryType; } /** * This function returns number of rows got when executing a query * * @return mixed FALSE if there is no query-result. * If the queryType is SELECT then it will use the function MYSQL_NUM_ROWS * Otherwise it uses the MYSQL_AFFECTED_ROWS * @access public */ function getNumRows() { if($this->result) { if(DEBUG==TRUE) { print("<font style=\"background-color: red\">".$this->getQueryType()."</font><br>"); } return mysql_affected_rows($this->connection); } return FALSE; } /** * The function returns the result from a call to the query() function * * @return object * @access public */ function getQueryResult() { return $this->result; } /** * This function returns the query result as an array for each row in the query result * * @return array * @access public */ function fetchArray() { if($this->result) { return mysql_fetch_array($this->result); } return FALSE; } /** * This function returns the query result as an object for each row in the query result * * @return object * @access public */ function fetchObject() { if($this->result) { return mysql_fetch_object($this->result); } return FALSE; } /** * This function returns the query result as an array for each row in the query result * * @return array * @access public */ function fetchRow() { if($this->result) { return mysql_fetch_row($this->result); } return FALSE; } /** * This function sets the database * * @return boolean TRUE if the database was set * @access public */ function setDb($sDatabase) { if(!$this->getConnected()) { $this->printError("Not connected in function setDb()"); return FALSE; } if($this->selectedDb = mysql_select_db($sDatabase, $this->connection)) { return TRUE; } return FALSE; } /** * This function returns a flag so you can see if you are connected to the database * or not * * @return boolean TRUE when connected to the database * @access public */ function getConnected() { return $this->isConnected; } /** * This function sets the flag so you can see if you are connected to the database * * @param $bStatus The status of the connection. TRUE if you are connected, * FALSE if you are not * @access public */ function setConnected($bStatus) { $this->isConnected = $bStatus; } /** * The function unlocks tables if there are locked tables and the closes the * connection to the database. * * @access public */ function closeConnection() { if($this->getLocked()) { $this->unlock(); } if($this->getConnected()) { mysql_close($this->connection); $this->setConnected(FALSE); } } /** * Unlocks all tables that are locked * * @access public */ function unlock() { if(!$this->getConnected()) { $this->setLocked(FALSE); } if($this->getLocked()) { $this->query("UNLOCK TABLES"); $this->setLocked(FALSE); } } /** * This function locks the table(s) that you specify * The type of lock must be specified at the end of the string. * * @param string a string containing the table(s) to lock, * as well as the type of lock to use (READ or WRITE) * at the end of the string * @return boolean TRUE if the tables was successfully locked * @access private */ function lock($sCommand) { if($this->query("LOCK TABLE ".$sCommand)) { $this->setLocked(TRUE); return TRUE; } $this->setLocked(FALSE); return FALSE; } /** * This functions sets read lock to specified table(s) * * @param string a string containing the table(s) to read-lock * @return boolean TRUE on success */ function setReadLock($sTable) { return $this->lock($sTable." ".LOCKED_FOR_READ); } /** * This functions sets write lock to specified table(s) * * @param string a string containing the table(s) to read-lock * @return boolean TRUE on success */ function setWriteLock($sTable) { return $this->lock($sTable." ".LOCKED_FOR_WRITE); } /** * Sets the flag that indicates if there is any tables locked * * @param boolean The flag that will indicate the lock. TRUE if locked */ function setLocked($bStatus) { $this->isLocked = $bStatus; } /** * Returns TRUE if there is any locked tables * * @return boolean TRUE if there are locked tables */ function getLocked() { return $this->isLocked; } /** * Prints an error to the screen. Can be used to kill the application * * @param string The text to display * @param boolean TRUE if you want to kill the application. Default is FALSE */ function printError($text, $killApp=FALSE) { if($text) { print("<b>Error</b><br />".$text); } if($killApp) { exit(); } } /** * Display any mysql-error * * @return mixed String with the error if there is any error. * Otherwise it returns FALSE */ function getMysqlError() { if(mysql_error()) { return "<br /><b>Mysql Error Number ".mysql_errno()."</b><br />".mysql_error(); } return FALSE; } } ?> 로그인 후 복사 |

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











PHP 클라이언트 URL (CURL) 확장자는 개발자를위한 강력한 도구이며 원격 서버 및 REST API와의 원활한 상호 작용을 가능하게합니다. PHP CURL은 존경받는 다중 프로모토콜 파일 전송 라이브러리 인 Libcurl을 활용하여 효율적인 execu를 용이하게합니다.

Alipay PHP ...

고객의 가장 긴급한 문제에 실시간 인스턴트 솔루션을 제공하고 싶습니까? 라이브 채팅을 통해 고객과 실시간 대화를 나누고 문제를 즉시 해결할 수 있습니다. 그것은 당신이 당신의 관습에 더 빠른 서비스를 제공 할 수 있도록합니다.

기사는 PHP 5.3에 도입 된 PHP의 LSB (Late STATIC BING)에 대해 논의하여 정적 방법의 런타임 해상도가보다 유연한 상속을 요구할 수있게한다. LSB의 실제 응용 프로그램 및 잠재적 성능

JWT는 주로 신분증 인증 및 정보 교환을 위해 당사자간에 정보를 안전하게 전송하는 데 사용되는 JSON을 기반으로 한 개방형 표준입니다. 1. JWT는 헤더, 페이로드 및 서명의 세 부분으로 구성됩니다. 2. JWT의 작업 원칙에는 세 가지 단계가 포함됩니다. JWT 생성, JWT 확인 및 Parsing Payload. 3. PHP에서 인증에 JWT를 사용하면 JWT를 생성하고 확인할 수 있으며 사용자 역할 및 권한 정보가 고급 사용에 포함될 수 있습니다. 4. 일반적인 오류에는 서명 검증 실패, 토큰 만료 및 대형 페이로드가 포함됩니다. 디버깅 기술에는 디버깅 도구 및 로깅 사용이 포함됩니다. 5. 성능 최적화 및 모범 사례에는 적절한 시그니처 알고리즘 사용, 타당성 기간 설정 합리적,

기사는 입력 유효성 검사, 인증 및 정기 업데이트를 포함한 취약점을 방지하기 위해 프레임 워크의 필수 보안 기능을 논의합니다.

이 기사에서는 프레임 워크에 사용자 정의 기능 추가, 아키텍처 이해, 확장 지점 식별 및 통합 및 디버깅을위한 모범 사례에 중점을 둡니다.

PHP 개발에서 PHP의 CURL 라이브러리를 사용하여 JSON 데이터를 보내면 종종 외부 API와 상호 작용해야합니다. 일반적인 방법 중 하나는 컬 라이브러리를 사용하여 게시물을 보내는 것입니다 ...
