经测试代码如下:
<?php
/**
* mysql数据库操作类
*
* @param
* @arrange (编程之家) jb51.cc
**/
class Database{
private $host;
private $user;
private $pwd;
private $rows;
private $error;
private $result;
private $dbName;
private $connection;
private $isReady;
public function __construct(){
$this->result = null;
$this->isReady = false;
$this->error = array();
}
public function __destruct(){ @mysql_close($this->connection); }
/* setters */
public function setHost($host){ $this->host = $host; }
public function setUser($user){ $this->user = $user; }
public function setPassword($pwd){ $this->pwd = $pwd; }
public function setDbName($dbName){ $this->dbName = $dbName; }
/* other interfaces */
public function init($host=null,$user=null,$pwd=null,$dbName=null){
if(!isset($host,$user,$pwd,$dbName))
die(Please provide require settings.);
$this->setHost($host);
$this->setUser($user);
$this->setPassword($pwd);
$this->setDbName($dbName);
$this->isReady = true;
}
public function select($dbName){
$this->setDbName($dbName);
mysql_select_db($this->dbName,$this->connection) or die(The said database does not exist.);
}
public function query($sql){
$this->result = mysql_query($sql,$this->connection) or die(Invalid query string!);
}
public function connect(){
if(!$this->isReady) die(not ready to connect);
$this->connection = mysql_connect($this->host,$this->user,$this->pwd) or die(Could not connect to database. please check your credentials.);
$this->select($this->dbName);
$this->query(SET NAMES 'utf8',$this->connection); //persian support
}
public function isConnected(){
if($this->connection)
return true;
return false;
}
public function disconnect(){
mysql_close($this->connection);
$this->connection = null;
}
public function countRows($selectMode = true){
if($selectMode)
return mysql_num_rows($this->result);
return mysql_affected_rows($this->connection);
}
public function loadRows(){
if(!$this->result) die(Nothing found!);
$this->rows = array();
while($r = mysql_fetch_array($this->result,MYSQL_BOTH))
$this->rows[] = $r;
mysql_free_result($this->result);
return $this->rows;
}
public function siftDown($dataStack){
if(!is_array($dataStack)){
$dataStack = ereg_replace([\'\)(;|`,<>],,$dataStack);
$dataStack = mysql_real_escape_string(trim($dataStack),$this->connection);
$dataStack = stripslashes($dataStack);
return $dataStack;
}
$safeData = array();
foreach($dataStack as $p=>$data){
$data = ereg_replace([\'\)(;|`,$data);
$data = mysql_real_escape_string(trim($data),$this->connection);
$data = stripslashes($data);
$safeData[$p] = $data;
}
return $safeData;
}
public function secure($data){
return sha1(md5(sha1(md5(sha1($data)))));
}
}//Database class
?>
<?php //usage
require_once 'path/to/Database.class.php';
$db = new Database(); //Creating new object
$db->init(localhost,test_root,test_pwd!,test_db); //initializing by credentials.
$db->connect(); //unicode support
$test_value = $db->siftDown($test_value); //preventing harmful inputs
$something_testy_else = $db->siftDown($something_testy_else);
$db->query(SELECT * FROM test_table WHERE test_field = '$test_value' AND second_test_field = '$something_testy_else' LIMIT 1);
if($db->countRows()==1)
$dbdata = $db->loadRows(); //returns a numeric/associative array as the result (MYSQL_BOTH)
//TODO: To Process $dbdata
$db->disconnect();
?>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。