前几天学习php连接mysql,老师讲到用对象的方式来实现数据库操作.当时觉得学的挺明白的,立即开始自己写,结果,思路完全错误,根本就不能达到要求.
后来想到我要写一个系统,就必须用到mysql,而把php连接数据库的操作对象化,会简化很多操作,于是今天又写了一次,最后居然成功了.
不过后来发现,原来mysqli早就已经实现了对象化,并且功能还很完善.
==========下面发代码===========
<?php
//创建一个sql工具,用户有mysql的服务器地址,用户名,密码,数据库名,即可进行增,删,查,改等操作.
class SQLTool{
public $host;
public $usename;
public $passwd;
public $db;
public $conn = null;
//定义构造函数
public function __construct($ihost,$iusename,$ipasswd,$idb){
$this->host=$ihost;
$this->usename=$iusename;
$this->passwd=$ipasswd;
$this->db=$idb;
//连接数据库管理系统
$this->conn =mysql_connect($ihost,$iusename,$ipasswd);
if(!$this->conn){
die("数据库连接失败!错误信息如下:".mysql_error());
}
//use数据库
mysql_query("use `$idb`",$this->conn) or die("使用数据库失败".mysql_error());
}
//传入$sql,操作数据库,增,删,改,不返回数据,只返回操作结果
public function zsg($sql){
$res=mysql_query($sql) or die ("操作数据库失败".mysql_error());
$affected_rows=mysql_affected_rows($this->conn);
echo "成功操作" . $affected_rows . "行.";
}
//传入$sql,操作数据库,查询等有返回数据的
public function search($sql){
$res=mysql_query($sql) or die ("操作数据库失败".mysql_error()); //接收$sql的结果集
//var_dump($res);
$rows=mysql_num_rows($res); //取得结果集的行数
$colums=mysql_num_fields($res); //取得结果集的列数
//以表格的方式 打印返回结果
echo "<table border=1px><tr>";
//表头
for($i=0;$i<$colums;$i++){
$col=mysql_field_name($res,$i); //取得结果集中 指定的字段
echo "<th>".$col."</th>" ;
}
echo "<tr/>";
//表体
while($row=mysql_fetch_row($res)){ //逐行读取结果集
echo "<tr>";
for($i=0;$i<$colums;$i++){
echo "<td>".$row[$i]."</td>"; //显示结果集
}
echo "</tr>";
}
echo "</table>";
//释放资源
mysql_free_result($res);
}
}
$sqltool=new SQLTool("localhost","root","123456","user");
//$sql="insert into contacts value(null,'zaza','218320302','海淀区中关村','','','')";
$sql="delete from contacts where id=21";
//$sql="update contacts set name='uu' where id=18";
//$sqltool->search($sql);
$sqltool->zsg($sql);
?>
没有评论:
发表评论