PHP7原生MySQL数据库操作实现代码
php7中mysql的连接与使用与PHP5中大不相同
PHP5中mysql_connect()等函数大多被PHP7中类的成员函数所代替。PHP5中连接mysql是过程性的,而PHP7中强调了类的使用与面向对象的方法
$user=newmysqli(); //Connecttomysql $user->connect("localhost","root","q721@Ms67","Student");
mysql的连接被mysqli类所替代
//Searchinmysql $query='SELECT*FROMusers'; //Useavariabletosaveresult $result=$user->query($query);
查询语句也变成了类的成员函数
连接到MySQL服务器
mysqli_connect(host,username,password[,dbname][,port]);
-参数:
host:MySQL服务器。可以包含端口号,默认值为“localhost:3306”
username:用户名。默认值是服务器进程所有者的用户名;
password:密码。
dbname:数据库名称。
port:MySQL服务器的端口号,默认为3306。
-返回值:如果连接成功,则返回mysqli连接对象。如果失败,则返回false。
实例代码一
close(); ?>
localhost意思是本地主机,如果你是在自己电脑上的话,这项就不用改了
root是mysql的用户名,如果你是默认的没有修改,也不用管,直接copy
password这事mysql的密码,如果你没有试着的话,直接写空的就行,""这样哦
代码二
代码三
connect_error){ die("连接失败:".$conn->connect_error); } echo"连接成功"; $conn->close(); ?>
选择当前数据库
mysqli_select_db(mysqliLink,database)
-描述:一个数据库服务器可能包含很多的数据库,通常需要针对某个具体的数据库进行编程
-返回值:如果成功返回TRUE,失败则返回FALSE
设置客户端字符集
mysqli_set_charset(mysqliLink,charset)
-描述:设置默认字符编码
-返回:成功时返回TRUE,或者在失败时返回FALSE。
发送一条MySQL查询
mysqli_query(mysqliLink,queryStr)
-参数:
query是查询字符串;
link是创建的活动的数据库连接;
-说明:mysqli_query()仅对SELECT,SHOW或DESCRIBE语句返回一个mysqli_result结果集对象,如果查询执行不正确则返回FALSE。对于其它类型的SQL语句,mysqli_query()在执行成功时返回TRUE,出错时返回FALSE。非FALSE的返回值意味着查询是合法的并能够被服务器执行。
-注意:查询字符串不应以分号结束,和命令行模式下有区别。
从结果集中取得一行作为关联数组,或数字数组,或二者兼有
mysqli_fetch_array(mysqliResult[,resultType])
-参数:resultType是一个常量,取值:MYSQLI_BOTH(两者兼有,默认)、MYSQLI_ASSOC(关联索引)、MYSQLI_NUM(数字索引)
-返回:返回根据从结果集取得的行生成的数组,如果没有更多行则返回FALSE。
-注意:本函数返回的字段名区分大小写。
从结果集中取得所有行作为关联数组、枚举数组、或二者兼有
mysqli_fetch_all(mysqliResult[,resultType])
-参数:$result_type是一个常量,取值:MYSQLI_BOTH(两者兼有,默认)、MYSQLI_ASSOC(关联索引)、MYSQLI_NUM(数字索引)
-返回:返回根据从结果集取得的行生成的数组,如果没有更多行则返回FALSE。
-注意:本函数返回的字段名区分大小写。
取得结果集中行的数目
mysqli_num_rows(mysqliResult)
-注意:此命令仅对SELECT语句有效。
从结果集中取得一行作为关联数组
arraymysqli_fetch_assoc(mysqliResult)
-返回值:从结果集取得的行生成的关联数组,如果没有更多行则返回FALSE;
-注意:此函数返回的字段名大小写敏感。
取得前一次MySQL操作所影响的记录行数
mysqli_affected_rows(mysqliLink)
-说明:取得最近一次与$link关联的SELECT、INSERT、UPDATE或DELETE查询所影响的记录行数。
-注意:如果最近一次查询失败,函数返回-1。当使用UPDATE查询,MySQL不会将原值和新值一样的值更新,返回值不一定就是查询条件所符合的记录,只有修改过的记录数才会被返回。
释放与结果集相关联的内存
mysqli_free_result(mysqliResult)
-参数:mysqliResult为结果集对象。
返回上一个MySQL连接产生的文本错误信息
mysqli_connect_error()
-参数:没有参数
php7创建数据库:
方法一:
$sql="CREATEDATABASEmyDB3"; if(mysqli_query($conn,$sql)){ echo"数据库创建成功"; }else{ echo"Errorcreatingdatabase:".mysqli_error($conn); }
方法二:
//检测连接 if($conn->connect_error){ die("连接失败:".$conn->connect_error); } echo"连接成功"; $sql="CREATEDATABASEmyDB2"; if($conn->query($sql)===TRUE){ echo"数据库创建成功"; }else{ echo"Errorcreatingdatabase:".$conn->error; }
创建表的方法:
方法一:
//使用sql创建数据表 $sql="CREATETABLEMyGuests( idINT(6)UNSIGNEDAUTO_INCREMENTPRIMARYKEY, firstnameVARCHAR(30)NOTNULL, lastnameVARCHAR(30)NOTNULL, emailVARCHAR(50), reg_dateTIMESTAMP )"; if(mysqli_query($conn,$sql)){ echo"数据表MyGuests创建成功"; }else{ echo"创建数据表错误:".mysqli_error($conn); }
方法二:
//使用sql创建数据表 $sql="CREATETABLEMyGuests2( idINT(6)UNSIGNEDAUTO_INCREMENTPRIMARYKEY, firstnameVARCHAR(30)NOTNULL, lastnameVARCHAR(30)NOTNULL, emailVARCHAR(50), reg_dateTIMESTAMP )"; if($conn->query($sql)===TRUE){ echo"TableMyGuestscreatedsuccessfully"; }else{ echo"创建数据表错误:".$conn->error; }
插入数据的方法:
方法一:
$sql="INSERTINTOMyGuests(firstname,lastname,email) VALUES('John','Doe','john@example.com')"; if(mysqli_query($conn,$sql)){ echo"新记录插入成功"; }else{ echo"Error:".$sql."
".mysqli_error($conn); }
方法二:
$sql="INSERTINTOMyGuests(firstname,lastname,email) VALUES('John','Doe','john@example.com')"; if($conn->query($sql)===TRUE){ echo"新记录插入成功"; }else{ echo"Error:".$sql."
".$conn->error; }
插入多条数据的方法:
方法一:
$sql="INSERTINTOMyGuests(firstname,lastname,email) VALUES('John','Doe','john@example.com');"; $sql.="INSERTINTOMyGuests(firstname,lastname,email) VALUES('Mary','Moe','mary@example.com');"; $sql.="INSERTINTOMyGuests(firstname,lastname,email) VALUES('Julie','Dooley','julie@example.com')"; if(mysqli_multi_query($conn,$sql)){ echo"新记录插入成功"; }else{ echo"Error:".$sql."
".mysqli_error($conn); }
方法二:
$sql="INSERTINTOMyGuests(firstname,lastname,email) VALUES('22','Doe','john@example.com');"; $sql.="INSERTINTOMyGuests(firstname,lastname,email) VALUES('22','Moe','mary@example.com');"; $sql.="INSERTINTOMyGuests(firstname,lastname,email) VALUES('22','Dooley','julie@example.com')"; if($conn->multi_query($sql)===TRUE){ echo"新记录插入成功"; }else{ echo"Error:".$sql."
".$conn->error; }
查询数据库的方法:
方法一:
$sql="SELECTid,firstname,lastnameFROMMyGuests"; $result=mysqli_query($conn,$sql); if(mysqli_num_rows($result)>0){ //输出数据 while($row=mysqli_fetch_assoc($result)){ echo"id:".$row["id"]."-Name:".$row["firstname"]."".$row["lastname"]."
"; } }else{ echo"0结果"; }
方法二:
$sql="SELECTid,firstname,lastnameFROMMyGuests"; $result=$conn->query($sql); if($result->num_rows>0){ //输出数据 while($row=$result->fetch_assoc()){ echo"id:".$row["id"]."-Name:".$row["firstname"]."".$row["lastname"]."
"; } }else{ echo"0结果"; }
看到这里毛票票小编再为大家分享一个整理好的类库
connect($dbhost,$dbuser,$dbpw,$dbname); } functionconnect($dbhost,$dbuser,$dbpw,$dbname){ //global$dbcharset; if(!$this->link=@mysqli_connect($dbhost,$dbuser,$dbpw,$dbname)){ $this->halt("CannotconnecttoMySQLserver"); } if($this->server_info()>'5.0'){ mysqli_query($this->link,"SETsql_mode=''"); } /* if($dbname){ if(!@mysqli_select_db($dbname,$this->link)){ $this->halt('Cannotusedatabase'.$dbname); } }*/ } functionselect_db($dbname){ $this->dbname=$dbname; if(!@mysqli_select_db($dbname,$this->link)){ $this->halt('Cannotusedatabase'.$dbname); } } functionserver_info(){ returnmysqli_get_server_info($this->link); } functionversion(){ returnmysqli_get_server_info($this->link); } functioninsert($tableName,$column=array()){ $columnName=""; $columnValue=""; foreach($columnas$key=>$value){ $columnName.=$key.","; $columnValue.="'".$value."',"; } $columnName=substr($columnName,0,strlen($columnName)-1); $columnValue=substr($columnValue,0,strlen($columnValue)-1); $sql="INSERTINTO$tableName($columnName)VALUES($columnValue)"; $this->query($sql); } functionupdate($tableName,$column=array(),$where=""){ $updateValue=""; foreach($columnas$key=>$value){ $updateValue.=$key."='".$value."',"; } $updateValue=substr($updateValue,0,strlen($updateValue)-1); $sql="UPDATE$tableNameSET$updateValue"; $sql.=$where?"WHERE$where":null; $this->query($sql); } functiondelete($tableName,$where=""){ $sql="DELETEFROM$tableName"; $sql.=$where?"WHERE$where":null; $this->query($sql); } functionselect($tableName,$columnName="*",$where=""){ $sql="SELECT".$columnName."FROM".$tableName; $sql.=$where?"WHERE".$where:null; $this->query($sql); } functionget_all($sql,$result_type=MYSQLI_ASSOC){ $query=$this->query($sql); $i=0; $rt=array(); while($row=&mysqli_fetch_array($query,$result_type)){ $rt[$i]=$row; $i++; } //$this->write_log("获取全部记录".$sql); return$rt; } functionfetchRow($query){ returnmysqli_fetch_assoc($query); } functionquery($sql){ //$this->write_log("查询".$sql); mysqli_query($this->link,"setnamesutf8"); $query=mysqli_query($this->link,$sql); //if(!$query)$this->halt('QueryError:'.$sql); return$query; } //获取第一个字段值 functiongetOne($sql,$limited=false){ if($limited==true){ $sql=trim($sql.'LIMIT1'); } $res=$this->query($sql); if($res!==false){ $row=mysqli_fetch_row($res); if($row!==false){ return$row[0]; }else{ return''; } }else{ returnfalse; } } functionfetch_array($query,$result_type=MYSQLI_ASSOC){ returnmysqli_fetch_array($query,$result_type); } //输出记录 functionfetch_first($sql){ $res=$this->query($sql); return$this->fetch_array($res,MYSQLI_ASSOC); } //取得一条数据记录 functionget_one($sql,$result_type=MYSQLI_ASSOC){ $result=$this->query($sql); $record=$this->fetch_array($result,$result_type); return$record; } functiongetRow($sql,$limited=false){ if($limited==true){ $sql=trim($sql.'LIMIT1'); } $res=$this->query($sql); if($res!==false){ returnmysqli_fetch_assoc($res); }else{ returnfalse; } } //取影响条数 functionaffected_rows(){ returnmysqli_affected_rows($this->link); } //从结果集中取得一行作为枚举数组 functionfetch_row($query){ returnmysqli_fetch_row($query); } //结果条数 functionnum_rows($query){ returnmysqli_num_rows($query); } //取字段总数 functionnum_fields($query){ returnmysqli_num_fields($query); } //返回查询结果 functionresult($query,$row){ $query=mysqli_result($query,$row); return$query; } //释放结果集 functionfree_result($query){ returnmysqli_free_result($query); } //返回自增ID functioninsert_id(){ return($id=mysqli_insert_id($this->link))>=0?$id:$this->result($this->query("SELECTlast_insert_id()"),0); } functionclose(){ returnmysqli_close($this->link); } functionerror(){ return(($this->link)?mysqli_error($this->link):''); } //返回错误信息 functionerrno(){ returnintval(($this->link)?mysqli_errno($this->link):''); } functionhalt($msg=''){ global$charset; $msg="\n\n"; $msg.="\n"; $msg.=" \n"; $msg.="body,p,pre{\n"; $msg.="font:12pxVerdana;\n"; $msg.="}\n"; $msg.="\n"; $msg.="\n"; $msg.=" \n"; $msg.="error:".htmlspecialchars($this->error())."\n
"; $msg.="errornumber:".$this->errno()."\n
"; $msg.="Date:".date("Y-m-d@H:i")."\n
"; $msg.="ScriptFile:http://".$_SERVER['HTTP_HOST'].getenv("REQUEST_URI")."\n
"; $msg.="\n