<?php
class Sql
{
private $db;
//連接數據庫
function __construct($char = 'utf8')
{
try {
$dsn = 'mysql:dbname=test;host=127.0.0.1';
$user = 'root';
$password = '123123';
$this->db = new PDO($dsn, $user, $password);
$this->db->query("set names $char");
} catch (Exception $e) {
exit($e->getMessage());
}
}
//獲取信息
public function getinfo()
{
echo "數據庫服務信息:" . $this->db->getAttribute(PDO::ATTR_SERVER_INFO) . "<br>"; //數據庫服務信息
echo "服務信息:" . $this->db->getAttribute(PDO::ATTR_SERVER_VERSION) . "<br>"; //服務器版本
echo "客戶端信息:" . $this->db->getAttribute(PDO::ATTR_CLIENT_VERSION) . "<br>"; //客戶端信息
echo "連接信息:" . $this->db->getAttribute(PDO::ATTR_CONNECTION_STATUS) . "<br>"; //連接信息
}
//設置錯誤提示模式
public function seterr($err = 'EXCEPTION')
{
switch ($err) {
case 'SILENT':
$this->db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_SILENT);
break;//僅設置錯誤代碼。
case 'WARNING':
$this->db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
break;//引發 E_WARNING 錯誤
default:
$this->db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
//echo '不合法的設置,系統默認設置為ERRMODE_EXCEPTION';
break;//拋出 exceptions 異常
}
}
public function geterr()
{
return $this->db->errorInfo();
}
//執行語句
public function query($sql, $param)
{
@$zj = $this->db->prepare($sql);
@$zid = $zj->execute($param);
return $zid;
}
//查詢
public function select($sql, $arr)
{
// echo $sql.'===='.json_encode($arr).'<br>';
@$zj = $this->db->prepare($sql);
@$zid = $zj->execute($arr);
@$zsd = $zj->fetchAll();
return $zsd;
}
//批次查詢
//插入
public function insert($sql, $arr)
{
$zj = $this->db->prepare($sql);
$zid = $zj->execute($arr);
return $zid;
}
//修改
public function update($sql, $arr)
{
$zj = $this->db->prepare($sql);
@$zid = $zj->execute($arr);
return $zid;
}
//刪除
public function delete($sql, $arr)
{
//$sql = "delete from $tbname where $term";
$zj = $this->db->prepare($sql);
@$zid = $zj->execute($arr);
return $zid;
}
//開啟事務
public function startwork()
{
$this->db->setAttribute(PDO::ATTR_AUTOCOMMIT, 0); ###//關閉自動提交
$this->db->beginTransaction(); #####//開啟事務
}
//執行事務
public function exwork()
{
$this->db->commit(); //執行整個事務
$this->db->setAttribute(PDO::ATTR_AUTOCOMMIT, 1); //開啟自動提交
}
//回滾事務
public function rollwork()
{
$this->db->rollback(); //撤銷全部事務
$this->db->setAttribute(PDO::ATTR_AUTOCOMMIT, 1); //開啟自動提交
}
//關閉連接
public function close()
{
$this->db = null;
}
function sel()
{
$sel = $this->db->query('select * from root where user = "root"');
$rst = $sel->fetchAll();
}
}
function createString($len){
$pattern = '1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLOMNOPQRSTUVWXYZ';
$key = '';
for($i=0;$i<$len;$i++) {
$key .= $pattern[mt_rand(0,35)]; //生成php隨機數
}
return $key;
}
$db = new Sql();
for ($i=0; $i < 100000 ; $i++) {
$data = [
null,
createString(mt_rand(8,12)),
md5(createString(8)),
mt_rand(0,1),
createString(6).'@'.createString(3).'.'.createString(3),
mt_rand(3,120),
mt_rand(50,18888)*mt_rand(50,18888)
];
$db->insert('INSERT INTO user VALUES (?,?,?,?,?,?,?)',$data);
}
echo 'ok';