首页 热点资讯 义务教育 高等教育 出国留学 考研考公
您的当前位置:首页正文

mysqli操作数据库

2023-11-11 来源:骅佗教育

一. 建立和断开连接

与MySQL数据库交互时,首先要建立连接,最后要断开连接,这包括与服务器连接并

选择一个数据库,以及最后关闭连接。与mysqli几乎所有的特性一样,这一点可以使用面向

对象的方法来完成,也可以采用过程化的方式完成。

1.创建一个mysqli的对象

$_mysqli = new mysqli();

2.连接MySQL的主机、用户、密码、数据库

$_mysqli->connect(‘localhost‘,‘root‘,‘yangfan‘,‘guest‘);

3.创建带连接参数的mysqli对象

$_mysqli = new mysqli(‘localhost‘,‘root‘,‘yangfan‘,‘guest‘);

4.单独选择数据库

$_mysqli->select_db(‘testguest‘);

5.断开MySQL

$_mysqli->close();

二. 处理连接错误

如果无法连接MySQL数据库,那么这个页面不太可能继续完成预期的工作。因此,一

定要注意监视连接错误并相应地做出反应。Mysqli扩展包含有很多特性可以用来捕获错误信

息,例如:mysqli_connect_errno()和mysqli_connect_error()方法。

mysqli_connect_errno()函数返回连接数据库返回的错误号。

Mysqli_connect_error()函数返回连接数据库返回的错误代码。

if (mysqli_connect_errno()) {

echo ‘数据库连接错误,错误信息:‘.mysqli_connect_error();

exit();

}

errno属性返回数据库操作时的错误号。

error属性返回数据库操作时的错误代码。

if ($_mysqli->errno) {

echo ‘数据库操作时发生错误,错误代码是:‘.$_mysqli->error;

}

三. 与数据库进行交互

绝大多数查询都与创建(Creation)、获取(Retrieval)、更新(Update)和删除(Deletion)任

务有关,这些任务统称为CRUD。

1.获取数据

网页程序大多数工作都是在获取和格式化所请求的数据。为此,要向数据库发送

SELECT查询,再对结果进行迭代处理,将各行输出给浏览器,并按照自己的要求输出。

//设置一下编码utf8

$_mysqli->set_charset("utf8");

//创建一句SQL语句

$_sql = "SELECT * FROM tg_user";

//执行sql语句把结果集赋给$_result

$_result = $_mysqli->query($_sql);

//将结果集的第一行输出

print_r($_result->fetch_row());

//释放查询内存(销毁)

$_result->free();

2.解析查询结果

一旦执行了查询并准备好结果集,下面就可以解析获取到的结果行了。你可以使用多个

方法来获取各行中的字段,具体选择哪一个方法主要取决于个人喜好,因为只是引用字段的

方法有所不同。

将结果集放到对象中

由于你可能会使用mysqli的面向对象的语法,所以完全可以采用面向对象的方式管理结

果集。可以使用fetch_object()方法来完成。

//将结果集包装成对象

$_row = $_reslut->fetch_object();

//输出对象中的一个字段(属性)

echo $_row->tg_username;

//遍历所有的用户名称

while (!!$_row = $_reslut->fetch_object()) {

echo $_row->tg_username.‘ <br /> ‘;

}

使用索引数组和关联数组

//将结果集包装成数组(索引+关联)

$_row = $_reslut->fetch_array();

//输出下标是3的字段(属性)

echo $_row[3];

//将结果集包装成索引数组

$_row = $_reslut->fetch_row();

echo $_row[3];

//将结果集包装成关联数组

$_row = $_reslut->fetch_assoc();

echo $_row[‘tg_username‘];

3.确定所选择的行和受影响的行

通常希望能够确定SELECT查询返回的行数,或者受INSERT、UPDATE或DELET查询

影响的行数。我们可以使用num_rows和affected_rows两个属性

//当使用查询时,想了解SELECT查询了多少行,可以使用num_rows。

echo $_reslut->num_rows;

//当使用查询时,想了解SELECT、INSERT、UPDATE、DELETE查询时影响的行

数,可以使用affected_rows;注意,它是$_mysqli下的属性

echo $_mysqli->affected_rows;

4.移动指针的操作和获取字段

当你并不想从第一条数据开始获取,或者并不想从第一个字段获取,你可以使用数据指

针移动或者字段指针移动的方式调整到恰当的位置。当然,你还可以获取字段的名称及其相

关的属性。

//计算有多少条字段

echo $_reslut->field_count;

//获取字段的名称

$_field = $_reslut->fetch_field();

echo $_field->name;

//遍历字段

while (!!$_field = $_reslut->fetch_field()) {

echo $_field->name.‘<br />‘;

}

//一次性取得字段数组

print_r($_reslut->fetch_fields());

//移动数据指针

$_reslut->data_seek(5);

//移动字段指针

$_reslut->field_seek(2);

5.执行多条SQL语句

有的时候,我们需要在一张页面上同时执行多条SQL语句,之前的方法就是分别创建多

个结果集然后使用。但这样资源消耗很大,也不利于管理。 PHP提供了执行多条SQL语句

的方法$_mysqli->multi_query();

//创建多条SQL语句

$_sql .= "SELECT * FROM tg_user;";

$_sql .= "SELECT * FROM tg_photo;";

$_sql .= "SELECT * FROM tg_article";

//开始执行多条SQL语句

if ($_mysqli->multi_query($_sql)) {

//开始获取第一条SQL语句的结果集

$_result = $_mysqli->store_result();

print_r($_result->fetch_array());

//将结果集指针移到下一个

$_mysqli->next_result();

$_result = $_mysqli->store_result();

print_r($_result->fetch_array());

$_mysqli->next_result();

$_result = $_mysqli->store_result();

print_r($_result->fetch_array());

} else {

echo ‘sql语句有误!‘;

}

6.执行数据库事务

事务(transaction)是作为整个一个单元的一组有序的数据库操作。如果一组中的所有操

作都成功,则认为事务成功,即使只有一个失败操作,事务也不成功。如果所有操作成功完

成,事务则提交(commit),其修改将作用于所有其他数据库进程。如果一个操作失败,则事

务将回滚(roll back),该事务所有操作的影响都将取消。

首先,您的MySQL是InnoDB或BDB引擎的一种,一般来说,你安装了AppServ的集成

包,你选择InnoDB的引擎的数据库即可。如果你建立的表不是InnoDB,可以在phpmyadmin

里修改。

//首先你必须关闭自动提交数据

$_mysqli->autocommit(false);

//创建一个SQL语句,必须同时运行成功,不能出现一个成功,一个失败

$_sql .= "UPDATE tg_friend SET tg_state=tg_state+5 WHERE tg_id=1;";

$_sql .= "UPDATE tg_flower SET tg_flower=tg_flower-5 WHERE tg_id=1;";

//执行两条SQL语句

if ($_mysqli->multi_query($_sql)) {

//获取第一条SQL一影响的行数

$_success = $_mysqli->affected_rows == 1 ? true : false;

//下移,第二条SQL

$_mysqli->next_result();

//获取第二条SQL影响的行数

$_success2 = $_mysqli->affected_rows == 1 ? true : false;

//判断是否都正常通过了,两个SQL

if ($_success && $_success2) {

$_mysqli->commit(); 

echo ‘完美提交!‘;

} else {

$_mysqli->rollback();

echo ‘程序出现异常!‘;

}

} else {

echo "SQL语句有误:".$_mysqli->errno.$_mysqli->error;

}

//最后还必须开启自动提交

$_mysqli->autocommit(true);

mysqli操作数据库

标签:php mysqli 数据库

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

php怎么用mysqli链接数据库和输出sql

一、mysql与mysqli的概念相关:

1、mysql与mysqli都是php方面的函数集,与mysql数据库关联不大。

2、在php5版本之前,一般是用php的mysql函数去驱动mysql数据库的,比如mysql_query()的函数,属于面向过程3、在php5版本以后,增加了mysqli的函数功能,某种意义上讲,它是mysql系统函数的增强版,更稳定更高效更安全,与mysql_query()对应的有mysqli_query(),属于面向对象,用对象的方式操作驱动mysql数据库

二、mysql与mysqli的区别:

1、mysql是非持继连接函数,mysql每次链接都会打开一个连接的进程。

2、mysqli是永远连接函数,mysqli多次运行mysqli将使用同一连接进程,从而减少了服务器的开销。mysqli封装了诸如事务等一些高级操作,同时封装了DB操作过程中的很多可用的方法。

三、mysql与mysqli的用法:

1:mysql(过程方式):

$conn =

mysql_connect('localhost', 'user', 'password'); //连接mysql数据库  mysql_select_db('data_base');

//选择数据库  $result =

mysql_query('select * from data_base');//第二个可选参数,指定打开的连接  $row =

mysql_fetch_row( $result ) ) //只取一行数据  echo

$row[0]; //输出第一个字段的值  

PS:mysqli以过程式的方式操作,有些函数必须指定资源,比如mysqli_query(资源标识,SQL语句),并且资源标识的参数是放在前面的,而mysql_query(SQL语句,'资源标识')的资源标识是可选的,默认值是上一个打开的连接或资源。

2、mysqli(对象方式):  

$conn = new

mysqli('localhost', 'user', 'password','data_base');  //要使用new操作符,最后一个参数是直接指定数据库  //假如构造时候不指定,那下一句需要$conn -> select_db('data_base')实现  $result =

$conn -> query( 'select * from data_base' );  $row =

$result -> fetch_row(); //取一行数据  echo

row[0]; //输出第一个字段的值

使用new mysqli('localhost', usenamer', 'password', 'databasename');会报错,提示如下:

Fatal error: Class 'mysqli' not found in ...

一般是mysqli是没有开启的,因为mysqli类不是默认开启的,win下要改php.ini,去掉php_mysqli.dll前的;,linux下要把mysqli编译进去。

四、mysql_connect()与mysqli_connect()

1.使用mysqli,可以把数据库名称当作参数传给mysqli_connect()函数,也可以传递给mysqli的构造函数;

2.如果调用mysqli_query()或mysqli的对象查询query()方法,则连接标识是必需的。

mysql连接数据库换成mysqli连接代码怎么写

您好,mysqli有2种编写方法,一种是面向过程,一种是面向对象。

官网上面有面向对象的写法,您可以到php官网参考一下。

mysqli的面向过程基本上和mysql的思路差不多,也是先连接,选择数据库,查询,取结果...

$sql = "SELECT * FROM table";

/* 连接 */

$con = mysqli_connect("localhost","user","password","dbname");

if (!$con)

{

die("连接错误: " . mysqli_connect_error());

}

/* 查询 */

$Result = mysqli_query($con,$sql);

/* 遍历结果集 */

while($data = mysqli_fetch_assoc($Result))

{

$Data_Username = $data["username"];

$Data_Password = $data["password"];

echo "用户名:{$Data_Username},密码:{$Data_Password}";

}

/* 释放查询结果 */

mysqli_free_result($Result);

/* 关闭连接 */

mysqli_close($con);

关于mysqli和mysql在处理存储过程和事务的区别

常说的mysql与mysqli,那是说php方面的函数集,跟mysql数据库没有关系。

在php5之前,大家都是用php的mysql去驱动mysql的,如mysql_query()的函数,但这样都是面向过程,算是第一代的mysql数据库驱动程序,也比较原始兼容性好。

在php5以后,随着面向对象的加入,就增加mysqli的函数功能,他是原先mysql系统函数的增强版,更稳定更高效更安全,如mysqli_query()。mysqli是面向对象,以对象的方式操作驱动mysql数据库。这个算是第二代了。

mysql的函数,一般都有对应一个mysqli的函数,如mysql_query对应mysqli_query,功能一样。当然mysqli也根据自身的特点加入了一些mysql没有的函数。

支不支持事务,要看mysql数据库的版本和存储引擎,跟php的版本无关。

新软件开发,建议还是用mysqli系列的面象对象方式,性能更好,但要考虑好环境的兼容问题。追问我记得有人跟我说以前的mysql要用mysqli才能支持存储过程.这话对吗?解决了麻烦采纳.非常感谢

追答我们目前讨论的mysql和mysqli,只是php的一个函数集,不是指mysql数据库。

事务操作,视图操作,存储过程那是mysql数据库所支持的范围,两者相对独立。

php现在比较流行了php5.2 php5.3 php5.4,mysql数据库现在流行是mysql5.1 mysql5.5 mysql5.6
可能版本差不多,你给搞混了。

关于mysqli和mysql在处理存储过程和事务的区别

常说的mysql与mysqli,那是说php方面的函数集,跟mysql数据库没有关系。

在php5之前,大家都是用php的mysql去驱动mysql的,如mysql_query()的函数,但这样都是面向过程,算是第一代的mysql数据库驱动程序,也比较原始兼容性好。

在php5以后,随着面向对象的加入,就增加mysqli的函数功能,他是原先mysql系统函数的增强版,更稳定更高效更安全,如mysqli_query()。mysqli是面向对象,以对象的方式操作驱动mysql数据库。这个算是第二代了。

mysql的函数,一般都有对应一个mysqli的函数,如mysql_query对应mysqli_query,功能一样。当然mysqli也根据自身的特点加入了一些mysql没有的函数。

支不支持事务,要看mysql数据库的版本和存储引擎,跟php的版本无关。

新软件开发,建议还是用mysqli系列的面象对象方式,性能更好,但要考虑好环境的兼容问题。追问我记得有人跟我说以前的mysql要用mysqli才能支持存储过程.这话对吗?解决了麻烦采纳.非常感谢

追答我们目前讨论的mysql和mysqli,只是php的一个函数集,不是指mysql数据库。

事务操作,视图操作,存储过程那是mysql数据库所支持的范围,两者相对独立。

php现在比较流行了php5.2 php5.3 php5.4,mysql数据库现在流行是mysql5.1 mysql5.5 mysql5.6
可能版本差不多,你给搞混了。

PHP用mysqli连接数据库,回答unknowndatabase

unknown
database说明mysql没有连接成功。
一个案例:
$conn=mysql_connect("localhost","root","123456")
or
die("数据库服务器连接错误".mysql_error());
mysql_select_db("db_pursey",$conn)
or
die("数据库访问错误".mysql_error());
mysql_query("set
names
gb2312");
还是一样的错误,数据库访问错误Unknown
database
'db_pursey'
访问不到该数据库。
解决方法:请检查连接端口是不是3306,如果不是就无法连接。

PHP用mysqli连接数据库,回答unknowndatabase

unknown
database说明mysql没有连接成功。
一个案例:
$conn=mysql_connect("localhost","root","123456")
or
die("数据库服务器连接错误".mysql_error());
mysql_select_db("db_pursey",$conn)
or
die("数据库访问错误".mysql_error());
mysql_query("set
names
gb2312");
还是一样的错误,数据库访问错误Unknown
database
'db_pursey'
访问不到该数据库。
解决方法:请检查连接端口是不是3306,如果不是就无法连接。

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应用程序。

查找数据库(mysqli)里面的数据并且删除或者添加,php代码怎么写求大神帮助下

<?php

$conn=new MySQLi("db_host","db_username","db_password");

$conn->select_db("db_name");

//查询

$sql="select * from table_name";

//添加

$sql='insert into table_name(column1,column2) values("value1","value2")';

//修改

$sql='update table_name set column1="value1" , column2="value2" where column0="value0"';

//删除

$sql='delete from table_name where column0="value0"';

$conn->query($sql);

?>

显示全文