欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

PHP之MySQL数据库连接

程序员文章站 2022-05-17 21:56:49
...

PHP 5 之前使用mysql扩展连接数据库

因为电脑上安装的PHP是7.x因此是出现如下报错,PHP5.x mysql_connect和mysqli_connect都可以使用

PHP之MySQL数据库连接

PHP5 之后使用一下方式连接MySQL

MySQLi extension ("i" 意为 improved)

PHP之MySQL数据库连接

面向过程

PHP之MySQL数据库连接

面向对象

PDO (PHP Data Objects)

PHP之MySQL数据库连接

mysqli_connect():连接数据库

mysqli_select_db():更改数据库

mysqli_close():关闭数据库连接

mysqli_query():执行数据语句

mysqli_num_rows():返回select查询了多少几条数据

mysqli_afferted_rows($con):返回受影响的条数

插入数据

<?php 
$con=mysqli_connect('192.168.138.129','root','shy014');
mysqli_select_db($con,'sql');//更改选择数据库
if (!$con) {
	die("无法连接到数据库服务器");
}
print("连接成功");
echo PHP_EOL;
//往数据库内插入数据
$sql="insert into users(id,username,address) values(4,'苏七','意大利')";
$result=mysqli_query($con,$sql);
if ($result) {
	echo "插入成功";
}else{
	echo "插入失败";
}
mysqli_close($con);

?>

PHP之MySQL数据库连接

更新数据:

<?php 
$con=mysqli_connect('192.168.138.129','root','shy014');
mysqli_select_db($con,'sql');//更改选择数据库
if (!$con) {
	die("无法连接到数据库服务器");
}
print("连接成功");
echo PHP_EOL;
//往数据库内插入数据
$sql="insert into users(id,username,address) values(9,'苏七','意大利')";
$result=mysqli_query($con,$sql);
if ($result) {
	echo "插入成功";
}else{
	echo "插入失败";
}
echo PHP_EOL;
//往数据库内更新数据
$up="update users set username='苏二十七' where username='苏七'";
$result=mysqli_query($con,$up);
if ($result) {
	echo "更新成功";
}else{
	echo "更新失败";
}
print_r($result);
	echo PHP_EOL;
mysqli_close($con);
?>

PHP之MySQL数据库连接

上述代码将插入与更新数据库语句的执行结果保存到了变量$result中,此时变量$result为布尔类型,语句执行成功$result=1为true;语句执行不成功,$result=0;为false;

mysqli_num_rows($result)

获取查询(select)结果的条数,只对select语句有关系。

<?php 
$con=mysqli_connect('192.168.138.129','root','shy014');
mysqli_select_db($con,'sql');//更改选择数据库
if (!$con) {
	die("无法连接到数据库服务器");
}
print("连接成功");
echo PHP_EOL;
$sel="select * from users";
$result=mysqli_query($con,$sel);
$num=mysqli_num_rows($result);
echo "查询结果有".$num."条记录。";
?>

mysqli_affected_rows($con):中间是mysql连接,而不是语句执行结果。

返回前一次mysql操作受影响的行数

affect 英[əˈfekt] 美[əˈfekt]
v. 影响; 侵袭; 使感染; (感情上) 深深打动; 使悲伤(或怜悯等);
<?php 
$con=mysqli_connect('192.168.138.129','root','shy014');
mysqli_select_db($con,'sql');//更改选择数据库
if (!$con) {
	die("无法连接到数据库服务器");
}
print("连接成功");
echo PHP_EOL;
$sel="select * from users";
$result=mysqli_query($con,$sel);
$num=mysqli_num_rows($result);
echo "查询结果有".$num."条记录。";
$insert="insert into users(id,username,address) values(12,'张三十一','四川')";
$result1=mysqli_query($con,$insert);
if (!$result1) {
	echo "插入失败";
}
$numin=mysqli_affected_rows($con);
echo "本次插入数据影响了".$numin."行。";
?>

PHP之MySQL数据库连接

mysqli_fetch_rows(result)

从select查询结果中获取一条数据并把它变成数组保存,如果想全部取出,可以结合循环语句。

<?php 
$con=mysqli_connect('192.168.138.129','root','shy014');
mysqli_select_db($con,'sql');//更改选择数据库
if (!$con) {
	die("无法连接到数据库服务器");
}
print("连接成功");
echo PHP_EOL;
$sel="select * from users";
$result=mysqli_query($con,$sel);
$num=mysqli_num_rows($result);
echo "查询结果有".$num."条记录。";
while($row=mysqli_fetch_row($result))
{
print_r($row);
}
?>

 运行结果

PHP之MySQL数据库连接

mysqli_fetch_assoc()

获取查询结果中的条数作用关联数组,返回的是关联数组,而且区分大小写

while($row=mysqli_fetch_assoc($result))
{
print_r($row);
}

PHP之MySQL数据库连接

mysqli_fetch_object($result)

从结果中获取一行记录作为对象

while($row=mysqli_fetch_object($result))
{
echo $row->id."和".$row->username;
echo PHP_EOL;
}

PHP之MySQL数据库连接

mysqli_fetch_array($result,[result_type])

获取查询结果并将结果保存为数组。result_type是常量,是可选参数。

MYSQL_ASSOC(关联数组) MYSQL_NUM(数字数组)MYSQL_BOTH(两者都有)(默认)

while($row=mysqli_fetch_array($result))
{
echo $row[0]."和".$row["id"];
echo PHP_EOL;
}

PHP之MySQL数据库连接

mysqli_free_result($result)

释放资源,释放SQL请求所返回的对象$result所占用的资源。

实例

htmlform.html

<!DOCTYPE html>
<html>
<head>
	<title>find user</title>
</head>
<body>
<h2>finding users form mysql database</h2>
<form aciton=formhandler.php method="post">
	Fill user name:
	<input type="text" name="username" size="20">
	<input type="submit" name="submit" value="find">
</form>
</body>
</html>

浏览器效果

PHP之MySQL数据库连接

formhandler.php

 

 

 

 

 

 

 

 

 

 

 

 

 

相关标签: php