搜索
您的当前位置:首页正文

PHP中对mysql预编译查询语句的一个封装

2023-11-09 来源:哗拓教育

小编还为您整理了以下内容,可能对您也有帮助:

php封装一个类能实现mysql数据库的增删改查(php增删改查mysql实例)

class

sqlHelper{

public

$conn;

public

$dbname="数据库名称";

public

$username="数据库用户名";

public

$password="数据库密码";

public

$host="localhost";

//连接数据库

public

function

__construct(){

$this-

if(!$this-

die("连接失败".mysql_error());

}

mysql_select_db($this-

}

//执行查询语句

public

function

execute_dql($sql){

$res=mysql_query($sql,$this-

return

$res;

}

//执行增填改语句

public

function

execute_dml($sql){

$b=mysql_query($sql,$this-

if(!$b){

return

3;

}else{

if(mysql_affected_rows($this-

return

1;//表示OK

}else{

return

2;//表示没有行收到影响

}

}

}

}

php封装一个类能实现mysql数据库的增删改查(php增删改查mysql实例)

class

sqlHelper{

public

$conn;

public

$dbname="数据库名称";

public

$username="数据库用户名";

public

$password="数据库密码";

public

$host="localhost";

//连接数据库

public

function

__construct(){

$this-

if(!$this-

die("连接失败".mysql_error());

}

mysql_select_db($this-

}

//执行查询语句

public

function

execute_dql($sql){

$res=mysql_query($sql,$this-

return

$res;

}

//执行增填改语句

public

function

execute_dml($sql){

$b=mysql_query($sql,$this-

if(!$b){

return

3;

}else{

if(mysql_affected_rows($this-

return

1;//表示OK

}else{

return

2;//表示没有行收到影响

}

}

}

}

PHP访问MYSQL数据库封装类(附函数说明)

复制代码
代码如下:
<?php
/*
MYSQL
数据库访问封装类
MYSQL
数据访问方式,php4支持以mysql_开头的过程访问方式,php5开始支持以mysqli_开头的过程和mysqli面向对象
访问方式,本封装类以mysql_封装
数据访问的一般流程:
1,连接数据库
mysql_connect
or
mysql_pconnect
2,选择数据库
mysql_select_db
3,执行SQL查询
mysql_query
4,处理返回的数据
mysql_fetch_array
mysql_num_rows
mysql_fetch_assoc
mysql_fetch_row
etc
*/
class
db_mysql
{
var
$querynum
=
0
;
//当前页面进程查询数据库的次数
var
$dblink
;
//数据库连接资源
//链接数据库
function
connect($dbhost,$dbuser,$dbpw,$dbname='',$dbcharset='utf-8',$pconnect=0
,
$halt=true)
{
$func
=
empty($pconnect)
?
'mysql_connect'
:
'mysql_pconnect'
;
$this->dblink
=
@$func($dbhost,$dbuser,$dbpw)
;
if
($halt
&&
!$this->dblink)
{
$this->halt("无法链接数据库!");
}
//设置查询字符集
mysql_query("SET
character_set_connection={$dbcharset},character_set_results={$dbcharset},character_set_client=binary",$this->dblink)
;
//选择数据库
$dbname
&&
@mysql_select_db($dbname,$this->dblink)
;
}
//选择数据库
function
select_db($dbname)
{
return
mysql_select_db($dbname,$this->dblink);
}
//执行SQL查询
function
query($sql)
{
$this->querynum++
;
return
mysql_query($sql,$this->dblink)
;
}
//返回最近一次与连接句柄关联的INSERT,UPDATE
或DELETE
查询所影响的记录行数
function
affected_rows()
{
return
mysql_affected_rows($this->dblink)
;
}
//取得结果集中行的数目,只对select查询的结果集有效
function
num_rows($result)
{
return
mysql_num_rows($result)
;
}
//获得单格的查询结果
function
result($result,$row=0)
{
return
mysql_result($result,$row)
;
}
//取得上一步
INSERT
操作产生的
ID,只对表有AUTO_INCREMENT
ID的操作有效
function
insert_id()
{
return
($id
=
mysql_insert_id($this->dblink))
>=
0
?
$id
:
$this->result($this->query("SELECT
last_insert_id()"),
0);
}
//从结果集提取当前行,以数字为key表示的关联数组形式返回
function
fetch_row($result)
{
return
mysql_fetch_row($result)
;
}
//从结果集提取当前行,以字段名为key表示的关联数组形式返回
function
fetch_assoc($result)
{
return
mysql_fetch_assoc($result);
}
//从结果集提取当前行,以字段名和数字为key表示的关联数组形式返回
function
fetch_array($result)
{
return
mysql_fetch_array($result);
}
//关闭链接
function
close()
{
return
mysql_close($this->dblink)
;
}
//输出简单的错误html提示信息并终止程序
function
halt($msg)
{
$message
=
"<html>\n<head>\n"
;
$message
.=
"<meta
content='text/html;charset=gb2312'>\n"
;
$message
.=
"</head>\n"
;
$message
.=
"<body>\n"
;
$message
.=
"数据库出错:".htmlspecialchars($msg)."\n"
;
$message
.=
"</body>\n"
;
$message
.=
"</html>"
;
echo
$message
;
exit
;
}
}
?>

PHP访问MYSQL数据库封装类(附函数说明)

复制代码
代码如下:
<?php
/*
MYSQL
数据库访问封装类
MYSQL
数据访问方式,php4支持以mysql_开头的过程访问方式,php5开始支持以mysqli_开头的过程和mysqli面向对象
访问方式,本封装类以mysql_封装
数据访问的一般流程:
1,连接数据库
mysql_connect
or
mysql_pconnect
2,选择数据库
mysql_select_db
3,执行SQL查询
mysql_query
4,处理返回的数据
mysql_fetch_array
mysql_num_rows
mysql_fetch_assoc
mysql_fetch_row
etc
*/
class
db_mysql
{
var
$querynum
=
0
;
//当前页面进程查询数据库的次数
var
$dblink
;
//数据库连接资源
//链接数据库
function
connect($dbhost,$dbuser,$dbpw,$dbname='',$dbcharset='utf-8',$pconnect=0
,
$halt=true)
{
$func
=
empty($pconnect)
?
'mysql_connect'
:
'mysql_pconnect'
;
$this->dblink
=
@$func($dbhost,$dbuser,$dbpw)
;
if
($halt
&&
!$this->dblink)
{
$this->halt("无法链接数据库!");
}
//设置查询字符集
mysql_query("SET
character_set_connection={$dbcharset},character_set_results={$dbcharset},character_set_client=binary",$this->dblink)
;
//选择数据库
$dbname
&&
@mysql_select_db($dbname,$this->dblink)
;
}
//选择数据库
function
select_db($dbname)
{
return
mysql_select_db($dbname,$this->dblink);
}
//执行SQL查询
function
query($sql)
{
$this->querynum++
;
return
mysql_query($sql,$this->dblink)
;
}
//返回最近一次与连接句柄关联的INSERT,UPDATE
或DELETE
查询所影响的记录行数
function
affected_rows()
{
return
mysql_affected_rows($this->dblink)
;
}
//取得结果集中行的数目,只对select查询的结果集有效
function
num_rows($result)
{
return
mysql_num_rows($result)
;
}
//获得单格的查询结果
function
result($result,$row=0)
{
return
mysql_result($result,$row)
;
}
//取得上一步
INSERT
操作产生的
ID,只对表有AUTO_INCREMENT
ID的操作有效
function
insert_id()
{
return
($id
=
mysql_insert_id($this->dblink))
>=
0
?
$id
:
$this->result($this->query("SELECT
last_insert_id()"),
0);
}
//从结果集提取当前行,以数字为key表示的关联数组形式返回
function
fetch_row($result)
{
return
mysql_fetch_row($result)
;
}
//从结果集提取当前行,以字段名为key表示的关联数组形式返回
function
fetch_assoc($result)
{
return
mysql_fetch_assoc($result);
}
//从结果集提取当前行,以字段名和数字为key表示的关联数组形式返回
function
fetch_array($result)
{
return
mysql_fetch_array($result);
}
//关闭链接
function
close()
{
return
mysql_close($this->dblink)
;
}
//输出简单的错误html提示信息并终止程序
function
halt($msg)
{
$message
=
"<html>\n<head>\n"
;
$message
.=
"<meta
content='text/html;charset=gb2312'>\n"
;
$message
.=
"</head>\n"
;
$message
.=
"<body>\n"
;
$message
.=
"数据库出错:".htmlspecialchars($msg)."\n"
;
$message
.=
"</body>\n"
;
$message
.=
"</html>"
;
echo
$message
;
exit
;
}
}
?>

php封装mysql联合查询和关联查询。 请写个例子。

有两个表,A表存储临时数据,B表存储永久数据,AB表有相同的id字段,为了区别A的叫gid,B的就叫id。

id都是唯一的。需要按照A表id的顺序读取A和B的所有数据。

查询语句:

$sqlt="select * FROM A LEFT JOIN B ON A.gid=B.id ORDER BY gid DESC ";

方法:

left join:联合两个表:条件是id相同,顺序按照A表排列。

追问我是要封装这样的语句

php封装mysql联合查询和关联查询。 请写个例子。

有两个表,A表存储临时数据,B表存储永久数据,AB表有相同的id字段,为了区别A的叫gid,B的就叫id。

id都是唯一的。需要按照A表id的顺序读取A和B的所有数据。

查询语句:

$sqlt="select * FROM A LEFT JOIN B ON A.gid=B.id ORDER BY gid DESC ";

方法:

left join:联合两个表:条件是id相同,顺序按照A表排列。

追问我是要封装这样的语句

php查找MySQL中某张表的数据,如何封装为json数组?

php把mysql数据转成json格式的方法:首先mysql测试数据库表,并新建【testmysql.php】文件来测试;然后用数据库执行查询语句;接着将数据放到user对象中;最后用【json_encode】函数将数据转换成json格式。

【相关学习推荐:php编程(视频)】

php把mysql数据转成json格式的方法:

1、首先mysql测试数据库表

CREATE TABLE `t_user` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户编号', `login_name` varchar(50) NOT NULL COMMENT '用户名', `usable` int(11) NOT NULL DEFAULT '1' COMMENT '是否可用 0:不可用;1:可用', `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `last_login_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后登录时间', PRIMARY KEY (`id`), UNIQUE KEY `login_name` (`login_name`)) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COMMENT='用户表';

2、在idea开发工具中新建一个testmysql.php文件来测试

创建mysql连接$link = mysql_connect('xxx:3306', 'root', 'xxx');if (!$link) { echo "fail";}

3、选择数据库,执行查询语句,$result接收返回的数据内容

mysql_select_db("study");$result = mysql_query("select * from t_user");

4、定义一个user对象

class User{ public $login_name; public $usable; public $create_time;}

5、循环读出数据放到user对象中

$data = array();while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { $user = new User(); $user->login_name = $row["login_name"]; $user->usable = $row["usable"]; $user->create_time = $row["create_time"]; $data[] = $user;}

6、使用json_encode函数将数组数据转换成json格式,然后echo打印出来

$json = json_encode($data);echo "{" . '"user"' . ":" . $json . "}";

7、右击选择Run运行,看看控制台运行之后打印结果

{"user":[{"login_name":"aa1","usable":"2","create_time":"2017-08-29 18:21:35"},{"login_name":"aa","usable":"1","create_time":"2017-08-29 18:22:30"}]}

信息成功从mysql中读出并转换成json格式打印了出来

完整示例代码如下:

<?phperror_reporting(E_ALL || ~E_NOTICE);$link = mysql_connect('xxx:3306', 'root', 'xxx');if (!$link) { echo "fail";}mysql_select_db("study");$result = mysql_query("select * from t_user");class User{ public $login_name; public $usable; public $create_time;}$data = array();while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { $user = new User(); $user->login_name = $row["login_name"]; $user->usable = $row["usable"]; $user->create_time = $row["create_time"]; $data[] = $user;}$json = json_encode($data);echo "{" . '"user"' . ":" . $json . "}";

想了解更多编程学习,敬请关注php培训栏目!

php查找MySQL中某张表的数据,如何封装为json数组?

php把mysql数据转成json格式的方法:首先mysql测试数据库表,并新建【testmysql.php】文件来测试;然后用数据库执行查询语句;接着将数据放到user对象中;最后用【json_encode】函数将数据转换成json格式。

【相关学习推荐:php编程(视频)】

php把mysql数据转成json格式的方法:

1、首先mysql测试数据库表

CREATE TABLE `t_user` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户编号', `login_name` varchar(50) NOT NULL COMMENT '用户名', `usable` int(11) NOT NULL DEFAULT '1' COMMENT '是否可用 0:不可用;1:可用', `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `last_login_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后登录时间', PRIMARY KEY (`id`), UNIQUE KEY `login_name` (`login_name`)) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COMMENT='用户表';

2、在idea开发工具中新建一个testmysql.php文件来测试

创建mysql连接$link = mysql_connect('xxx:3306', 'root', 'xxx');if (!$link) { echo "fail";}

3、选择数据库,执行查询语句,$result接收返回的数据内容

mysql_select_db("study");$result = mysql_query("select * from t_user");

4、定义一个user对象

class User{ public $login_name; public $usable; public $create_time;}

5、循环读出数据放到user对象中

$data = array();while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { $user = new User(); $user->login_name = $row["login_name"]; $user->usable = $row["usable"]; $user->create_time = $row["create_time"]; $data[] = $user;}

6、使用json_encode函数将数组数据转换成json格式,然后echo打印出来

$json = json_encode($data);echo "{" . '"user"' . ":" . $json . "}";

7、右击选择Run运行,看看控制台运行之后打印结果

{"user":[{"login_name":"aa1","usable":"2","create_time":"2017-08-29 18:21:35"},{"login_name":"aa","usable":"1","create_time":"2017-08-29 18:22:30"}]}

信息成功从mysql中读出并转换成json格式打印了出来

完整示例代码如下:

<?phperror_reporting(E_ALL || ~E_NOTICE);$link = mysql_connect('xxx:3306', 'root', 'xxx');if (!$link) { echo "fail";}mysql_select_db("study");$result = mysql_query("select * from t_user");class User{ public $login_name; public $usable; public $create_time;}$data = array();while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { $user = new User(); $user->login_name = $row["login_name"]; $user->usable = $row["usable"]; $user->create_time = $row["create_time"]; $data[] = $user;}$json = json_encode($data);echo "{" . '"user"' . ":" . $json . "}";

想了解更多编程学习,敬请关注php培训栏目!

PHP如何处理MySQL数据库

PHP如何处理MySQL数据库?

PHP如何处理MySQL数据库?

PHP是一种流行的服务器端脚本语言,主要用于Web开发。MySQL是一种流行的关系型数据库管理系统。PHP与MySQL的结合让开发人员可以轻松地构建动态网站和Web应用程序。在本文中,我们将介绍PHP如何处理MySQL数据库。

1.链接到MySQL数据库

在PHP中,可以使用mysqli或PDO扩展来连接到MySQL数据库。下面是一个使用mysqli扩展连接到数据库的示例代码:

`

$servername=localhost;

$username=yourusername;

$password=yourpassword;

$dbname=yourdatabase;

//创建连接

$conn=mysqli_connect($servername,$username,$password,$dbname);

//检查连接

if(!$conn){

die(Connectionfailed:.mysqli_connect_error());

}

`

以上代码通过mysqli_connect()函数创建与MySQL数据库的连接,并检查连接是否成功,如果连接不成功,则输出相应的错误信息。

2.执行MySQL查询

一旦连接到了MySQL数据库,就可以使用PHP来执行MySQL查询。下面是一个使用PHP查询MySQL数据库的示例代码:

`

$sql=SELECT*FROMcustomers;

$result=mysqli_query($conn,$sql);

if(mysqli_num_rows($result)>0){

//输出数据

while($row=mysqli_fetch_assoc($result)){

echoid:.$row[id].Name:.$row[name].Email:.$row[email].

;

}

}else{

echo0结果;

}

`

以上代码执行一个SELECT查询,并使用mysqli_query()函数从数据库中检索数据。检查结果是否存在数据,然后使用mysqli_fetch_assoc()函数提取每条记录数据,并输出结果。

3.增删改查数据

除了SELECT查询之外,也可以使用PHP执行INSERT、UPDATE和DELETE等操作来增删改查数据。下面是一些示例代码:

插入新数据

`

$sql=INSERTINTOcustomers(name,email,phone)

VALUES(JohnDoe,johndoe@example.com,555-555-5555);

if(mysqli_query($conn,$sql)){

echo新记录已成功插入;

}else{

echoError:.$sql.

.mysqli_error($conn);

}

`

更新数据

`

$sql=UPDATEcustomersSETname=JaneDoeWHEREid=1;

if(mysqli_query($conn,$sql)){

echo记录已成功更新;

}else{

echoErrorupdatingrecord:.mysqli_error($conn);

}

`

删除数据

`

$sql=DELETEFROMcustomersWHEREid=1;

if(mysqli_query($conn,$sql)){

echo记录已成功删除;

}else{

echoErrordeletingrecord:.mysqli_error($conn);

}

`

以上代码演示了如何使用PHP执行增删改查MySQL数据库中的数据。

总结

PHP与MySQL的结合为Web开发提供了强大的功能。本文介绍了如何使用PHP连接到MySQL数据库,并使用PHP执行MySQL查询、增删改查数据。了解这些基本概念可以让开发人员更好地构建动态网站和Web应用程序。

PHP中对数据库操作的封装,有什么好的例子吗

class SqlTool { //属性 private $conn; private $host="localhost"; private $user="root"; private $password="root"; private $db="test"; function SqlTool(){ $this->conn=mysql_connect($this->host,$this->user,$this->password); if(!$this->conn){ die("连接数据库失败".mysql_error()); } mysql_select_db($this->db,$this->conn); mysql_query("set names utf8");//设置字符集 } //方法.. // 完成select dql public function execute_dql($sql){ $res=mysql_query($sql,$this->conn) or die(mysql_error()); return $res; } //完成 update,delete ,insert dml public function execute_dml($sql){ $b=mysql_query($sql,$this->conn); //echo "添加的id=".mysql_insert_id($this->conn); if(!$b){ return 0;//失败 }else{ if(mysql_affected_rows($this->conn)>0){ return 1;//表示成功 }else{ return 2;//表示没有行数影响. } } } }?>

2.使用php的 mysqli 扩展库去操作mysql数据库

 

简单介绍:

 

mysqli (mysql improve mysql扩展库的增强版)

 

mysql 扩展库 和  mysqli 扩展库的比较

 

  1. mysqli 的稳定性和安全性,效率有所提高
  2. mysqi 支持面向对象编程 ,同时 mysqli 扩展库考虑到php老程序员,提供面向过程的编程风格.

 

mysqli 有两套编程风格:

 

 技术分享

 

$mysqli=new MySQLi(“localhost”,”root”,”roo3t”,”test”);//按照面向对象的方式if($mysqli->connect_error){ die($mysqli->connect_error);}// 考虑兼容低版本if(mysqli_connect_error()){ die(“连接error”. mysqli_connect_error())}

 

mysqli 编程的快速入门

编写一个程序,这个程序从user1表中读取数据,并打印在网页中。(使用mysqli完成.)

  1. 先使用mysqli面向对象的风格,完成案例 

1.1. 配置php.ini 文件让php支持mysqli扩展库

extension=php_mysqli.dll

1.2 建库,建表.

这里我们使用原来的user1表.

1.3 编写代码

 

 <?php header("Content-type: text/html;charset=utf-8"); //mysqli操作mysql数据库(面向对象风格) //1.创建MySQLi 对象 $mysqli=new MySQLi("localhost","root","root","test"); //验证是否ok if($mysqli->connect_error){ die("连接失败".$mysqli->connect_error); } //2. 操作数据库(发送sql) $sql="select * from user1"; //$res 是结果集.mysqli result $res=$mysqli->query($sql); //var_dump($res); //3. 处理结果 mysql_fetch_row(); while($row=$res->fetch_row()){ foreach($row as $key=>$val){ echo "--$val"; } echo "<br/>"; } //4. 关闭资源 //释放内存 $res->free(); //关闭连接 $mysqli->close();?>

 

3.再使用面向过程的方式给大家演示一下.

 

 

//1.得到mysqli连接 header("Content-type: text/html;charset=utf-8"); $mysqli=mysqli_connect("localhost","root","root","test"); if(!$mysqli){ die("连接失败".mysqli_connnect_error($mysqli)); } //2.向数据库发送sql语句(ddl,dml dql ...) $sql="select * from user1"; $res=mysqli_query($mysqli,$sql); //var_dump($res); //3.处理得到的结果 //循环取出$res中的数据mysqli_fetch_row mysql_fetch_row while($row=mysqli_fetch_row($res)){ foreach($row as $key=>$val){ echo "--$val"; } echo "<br/>"; } //4.关闭资源 mysqli_free_result($res); mysqli_close($mysqli);

 

? 在mysqli 扩展中,也提供了四种方式来获取mysqli result结果集

mysqli_result::fetch_assoc    <==>    mysql_fetch_assoc

mysqli_result::fetch_row  <==>    mysql_fetch_row

mysqli_result::fetch_array <===> mysql_fetch_array

mysqli_result::fetch_object<===> mysql_fetch_object

这里我们推荐大家使用前两种效率较高 

? 在mysqli释放结果集有三种方式:

void mysqli_result::free ( void )

void mysqli_result::close ( void )

void mysqli_result::free_result ( void )

? mysql 的 sql  语句的特别说明:

如果操作的字段类型是 string 型,则要求我们的 要用 ‘’ 包括。

如果操作的字段类型是 数值型,则可以用 ’80’ 包括,也可以不用

u mysqli的增强-批量执行sql语句

 

批量执行 dml语句

基本语法

$sqls=”sql1;sql2;...”
mysqli::multi_query($sqls)

//请使用mysqli的mysqi::multi_query() 一次性添加三个用户 宋江 卢俊义 吴用

 

$sqls="insert into user1 (name,password,email,age) values(‘宋江‘,‘aaa‘,‘aa@shu.com‘,45);";$sqls.="insert into user1 (name,password,email,age) values(‘卢俊义‘,‘aaa‘,‘aa@shu.com‘,45);";$sqls.="insert into user1 (name,password,email,age) values(‘吴用‘,‘aaa‘,‘aa@shu.com‘,45);";//$sqls.="update ;";//$sqls.="delete ;";//dml 和 dql$b=$mysqli->multi_query($sqls);

 

? 批量执行dml语句可以混合使用 delete insert update,但是最好不要使用select

 

PHP中将对数据库的操作,封装成一个工具类以及学会使用面向对象的方式进行编程

标签:

PHP中对数据库操作的封装,有什么好的例子吗

class SqlTool { //属性 private $conn; private $host="localhost"; private $user="root"; private $password="root"; private $db="test"; function SqlTool(){ $this->conn=mysql_connect($this->host,$this->user,$this->password); if(!$this->conn){ die("连接数据库失败".mysql_error()); } mysql_select_db($this->db,$this->conn); mysql_query("set names utf8");//设置字符集 } //方法.. // 完成select dql public function execute_dql($sql){ $res=mysql_query($sql,$this->conn) or die(mysql_error()); return $res; } //完成 update,delete ,insert dml public function execute_dml($sql){ $b=mysql_query($sql,$this->conn); //echo "添加的id=".mysql_insert_id($this->conn); if(!$b){ return 0;//失败 }else{ if(mysql_affected_rows($this->conn)>0){ return 1;//表示成功 }else{ return 2;//表示没有行数影响. } } } }?>

2.使用php的 mysqli 扩展库去操作mysql数据库

 

简单介绍:

 

mysqli (mysql improve mysql扩展库的增强版)

 

mysql 扩展库 和  mysqli 扩展库的比较

 

  1. mysqli 的稳定性和安全性,效率有所提高
  2. mysqi 支持面向对象编程 ,同时 mysqli 扩展库考虑到php老程序员,提供面向过程的编程风格.

 

mysqli 有两套编程风格:

 

 技术分享

 

$mysqli=new MySQLi(“localhost”,”root”,”roo3t”,”test”);//按照面向对象的方式if($mysqli->connect_error){ die($mysqli->connect_error);}// 考虑兼容低版本if(mysqli_connect_error()){ die(“连接error”. mysqli_connect_error())}

 

mysqli 编程的快速入门

编写一个程序,这个程序从user1表中读取数据,并打印在网页中。(使用mysqli完成.)

  1. 先使用mysqli面向对象的风格,完成案例 

1.1. 配置php.ini 文件让php支持mysqli扩展库

extension=php_mysqli.dll

1.2 建库,建表.

这里我们使用原来的user1表.

1.3 编写代码

 

 <?php header("Content-type: text/html;charset=utf-8"); //mysqli操作mysql数据库(面向对象风格) //1.创建MySQLi 对象 $mysqli=new MySQLi("localhost","root","root","test"); //验证是否ok if($mysqli->connect_error){ die("连接失败".$mysqli->connect_error); } //2. 操作数据库(发送sql) $sql="select * from user1"; //$res 是结果集.mysqli result $res=$mysqli->query($sql); //var_dump($res); //3. 处理结果 mysql_fetch_row(); while($row=$res->fetch_row()){ foreach($row as $key=>$val){ echo "--$val"; } echo "<br/>"; } //4. 关闭资源 //释放内存 $res->free(); //关闭连接 $mysqli->close();?>

 

3.再使用面向过程的方式给大家演示一下.

 

 

//1.得到mysqli连接 header("Content-type: text/html;charset=utf-8"); $mysqli=mysqli_connect("localhost","root","root","test"); if(!$mysqli){ die("连接失败".mysqli_connnect_error($mysqli)); } //2.向数据库发送sql语句(ddl,dml dql ...) $sql="select * from user1"; $res=mysqli_query($mysqli,$sql); //var_dump($res); //3.处理得到的结果 //循环取出$res中的数据mysqli_fetch_row mysql_fetch_row while($row=mysqli_fetch_row($res)){ foreach($row as $key=>$val){ echo "--$val"; } echo "<br/>"; } //4.关闭资源 mysqli_free_result($res); mysqli_close($mysqli);

 

? 在mysqli 扩展中,也提供了四种方式来获取mysqli result结果集

mysqli_result::fetch_assoc    <==>    mysql_fetch_assoc

mysqli_result::fetch_row  <==>    mysql_fetch_row

mysqli_result::fetch_array <===> mysql_fetch_array

mysqli_result::fetch_object<===> mysql_fetch_object

这里我们推荐大家使用前两种效率较高 

? 在mysqli释放结果集有三种方式:

void mysqli_result::free ( void )

void mysqli_result::close ( void )

void mysqli_result::free_result ( void )

? mysql 的 sql  语句的特别说明:

如果操作的字段类型是 string 型,则要求我们的 要用 ‘’ 包括。

如果操作的字段类型是 数值型,则可以用 ’80’ 包括,也可以不用

u mysqli的增强-批量执行sql语句

 

批量执行 dml语句

基本语法

$sqls=”sql1;sql2;...”
mysqli::multi_query($sqls)

//请使用mysqli的mysqi::multi_query() 一次性添加三个用户 宋江 卢俊义 吴用

 

$sqls="insert into user1 (name,password,email,age) values(‘宋江‘,‘aaa‘,‘aa@shu.com‘,45);";$sqls.="insert into user1 (name,password,email,age) values(‘卢俊义‘,‘aaa‘,‘aa@shu.com‘,45);";$sqls.="insert into user1 (name,password,email,age) values(‘吴用‘,‘aaa‘,‘aa@shu.com‘,45);";//$sqls.="update ;";//$sqls.="delete ;";//dml 和 dql$b=$mysqli->multi_query($sqls);

 

? 批量执行dml语句可以混合使用 delete insert update,但是最好不要使用select

 

PHP中将对数据库的操作,封装成一个工具类以及学会使用面向对象的方式进行编程

标签:

封装一个php函数,能实现sql语句查询表里面的内容的功能,在调用函数就能执行

可以的。

<?

function get_user(){

  $sql = "select * from user";

  $result = mysql_query($sql);

  $arr = array();

  while($rows=mysql_fetch_assoc($reslut)){

    $arr[]=$rows;

  }

  return $arr;

}

$user = get_suer();

print_r($user);

?>

php中调用mysql数据库,怎么嵌套查询。

外部的循环条件
while($row = $dosql->GetArray())
二级循环的条件
while($row2 = $dosql->GetArray()){
?>
<LI style="width:100px; height:30px; float:left;"><?php echo $row2['S_name']; ?></LI>
二级循环出来后$dosql->GetArray()肯定是假,当然只循环一次了

php中调用mysql数据库,怎么嵌套查询。

外部的循环条件
while($row = $dosql->GetArray())
二级循环的条件
while($row2 = $dosql->GetArray()){
?>
<LI style="width:100px; height:30px; float:left;"><?php echo $row2['S_name']; ?></LI>
二级循环出来后$dosql->GetArray()肯定是假,当然只循环一次了

PHP中,类的封装,调用问题

<?
class Page{
function 分页函数(参数){
$perNumber = 2;
$page = $_GET['page'];
$count = mysql_query("select count(*) from people");
$rs = mysql_fetch_array($count);
$totalNumber = $rs[0];
$totalPage = ceil($totalNumber/$perNumber);
if(!isset($page)){
$page = 1;
}
$startCount = ($page-1)*$perNumber;
$result = mysql_query("select * from people limit $startCount,$perNumber");
$num = mysql_numrows($result);

for($i=0;$i<$num;$i++){
$a = mysql_result($result,$i,"id");
$b = mysql_result($result,$i,"name");
$c = mysql_result($result,$i,"age");
echo "<br />".$a."<br />".$b."<br />".$c."<br />";
}

}
}

?>

PHP中,类的封装,调用问题

<?
class Page{
function 分页函数(参数){
$perNumber = 2;
$page = $_GET['page'];
$count = mysql_query("select count(*) from people");
$rs = mysql_fetch_array($count);
$totalNumber = $rs[0];
$totalPage = ceil($totalNumber/$perNumber);
if(!isset($page)){
$page = 1;
}
$startCount = ($page-1)*$perNumber;
$result = mysql_query("select * from people limit $startCount,$perNumber");
$num = mysql_numrows($result);

for($i=0;$i<$num;$i++){
$a = mysql_result($result,$i,"id");
$b = mysql_result($result,$i,"name");
$c = mysql_result($result,$i,"age");
echo "<br />".$a."<br />".$b."<br />".$c."<br />";
}

}
}

?>

php如何连接mysqlphp如何连接mysql数据库

PHP7连接mysql数据库的方法

1。使用mysql_connect方法,PHP7会报告一个致命错误。

$conn=MySQL_connect(本地主机,雪燕香,雪燕香);

致命错误:未捕获错误:调用/Users/xueyanxiang/work/test/Xue.PHP中未定义的函数MySQL_connect():31堆栈跟踪:#0/Users/xueyanxiang/work/test/Xue.PHP(119):Xue-run()#1{main}抛出于/Users/xueyanxiang/work/test/Xue.PHP在线31

原因是:

在PHP5中,使用mysql_connect()函数进行连接,但实际上从PHP5.5开始,mysql就被弃用了,是一个废弃的函数。

PHP7好像完全不支持。根据官网的说明,替换为以下两种:

这个扩展从PHP5.5.0开始就被弃用了,将来也会被删除。应该用MySQLiPDO_MySQL用扩展名替换它。参见MySQL:选择

API以获取更多信息。取代这一功能的有:

mysqli_connect()

PDO::__构造()

使用的时候,不要再用mysqli_connect了。可以用mysqli_connect()来代替。用法基本差不多。据说是面向对象的库。

在php.ini中,只有extension=php_mysqli.dll,而没有extension=php_mysqli.dll。

2.可以用mysqli,它是对象化的。方法名与被放弃的方法名相似。

$conn=mysqli_connect(本地主机,雪燕香,雪燕香);

3.推荐使用PDO工具。

$dbh=dbname=test

$db=新PDO($dbh,雪燕香,雪燕香);

$objQuery=$dB-查询(

$RES=$objQuery-fetchAll(PDO::FETCH_ASSOC);

如果不填写参数,默认为关联和索引,如下图所示

php如何连接并调用mysql数据库的数据?

建立好数据库后,

?php

$con=mysql_connect("数据库地址","用户名","密码");

if(!$con){die('链接错误:'.mysql_error());}

mysql_select_db("要使用的Table",$con);

mysql_query("INSERTINTO表名(字段1,字段2,字段N)VALUES('字段1数据','字段2数据','字段3数据')");

mysql_close($con);

?>

一般情况下很少单独的这样使用,都是做成类。

你可以下载一个speedphp框架来参考一下。阅读这个框架的源码,对初学者来说相当的有帮助。

手打不谢

php通过什么中间件与mysql链接?

底层而言,需要mysql库比如libmysql.dll

PHP本身,需要mysql扩展,比如php_mysqli.dll,pdo_mysql.dll

代码简单级别,或有一些数据库类库,比如adodb,ezSQL,Zebra_Database之类的,不过他们都可能支持多数据库

复杂应用级别,一般会有某种框架结构,自带有类似DAO层的东西

很抽象级别,就会用ORM比如Doctrine,Redbean之类的

php网站如何连接到远程mysql数据库?

在php中如果要连接远程数据库连接方法很简单,只要把本地连接localhost或127.0.0.1改成指定远程服务器一IP地址或者直接域名即可。

语法

mysql_connect(servername,username,password);

例子

在下面的例子中,我们在一个变量中($con)存放了在脚本中供稍后使用的连接。如果连接失败,将执行"die"部分:

代码如下:

?php

$con=mysql_connect("localhost","peter","abc123");

if(!$con)

{

die('Couldnotconnect:'.mysql_error());

}

//somecode

?>

上面是连接本地数据库,下面把localhost改成远程IP即可了

实例代码如下:

$conn=mysql_connect('

http://boaer.com'

,'root','123456888');

if(!$conn)echo"失败!";

elseecho"成功!";

//从表中提取信息的sql语句

$sql="SELECT*FROMuserwhereuserName='$user_name'";

//执行sql查询

$result=mysql_db_query('info',$sql,$conn);

//获取查询结果

$row=mysql_fetch_row($result);

mysql_close();

php到底怎么连接access数据库?

conconfig.php中配置如下?phpreturnarray(APP_DEBUG=true,DB_TYPE=pdo,//注意DSN的配置针对不同的数据库有所区别请参考PHP手册PDO类库部分DB_DSN=odbc:driver={microsoftaccessdriver(*.mdb)};dbq=.getcwd().Database#fbdb.mdb,DB_USEconconfig.php中配置如下true,'DB_TYPE'=>'pdo',//注意DSN的配置针对不同的数据库有所区别请参考PHP手册PDO类库部分'DB_DSN'=>"odbc:driver={microsoftaccessdriver(*.mdb)};dbq=".getcwd()."Database#fbdb.mdb",'DB_USER'=>'root','DB_PWD'=>'','DB_PREFIX'=>'wxz_',);?>其中需修改的有"Database#fbdb.mdb"相对与当前目录下的数据库文件位置,其余的用户名、密码和前缀(“wxz_”)根据情况修改IndexAction.class.php示例代码query("select*fromproct");print_r($r);}}ThinkPHP内置了抽象数据库讵问层,把丌同_数据库操作封装起来,我们_需要使用公共_Db类迕行操作,而无需针对丌同_数据库写丌同_代码和底层实现,Db类会自劢调用相应_数据库驱劢来处理。目前_数据库包括Mysql、SqlServer、PgSQL、Sqlite、Oracle、Ibase、Mongo,也包括对PDO_支持,如果应用需要使用数据库,必须配置数据库连接信息,数据库_配置文件有多种定丿方式,不支持ACCESS数据库

php怎么进行数据库连接?

1、数据库连接第一步:配置mysql_connect()的参数

参数依次为:主机地址,用户名,用户密码

2、mysql_pconnect()与mysql_connect()是不一样的,pconnect顾名思义是持久连接

3、服务器连接成功后,需要你选择你需要用的数据库

4、使用mydql_close()可以关闭数据库连接资源,避免长时间占用启用资源消耗

5、mysqli_connect()是mysql连接的另一种方式,参数形式一样

6、首次使用mysql连接数据库时,要记得使用输入逻辑判断,服务器连接不成功或者选择数据库不成功,都要用Mysql_error或者mysql_errno来报错

7、mysql的报错,能够帮助你准确地定位到错误发生在哪里。

Top