24)PHP,数据库的基本知识
(1)数据库操作的基本流程:
1 • 建立连接(认证身份) 2 • 客户端向服务器端发送sql命令 3 • 服务器端执行命令,并返回执行的结果 4 • 客户端接收结果(并显示) 5 • 断开连接
(2)php中操作数据库的基本代码和流程
1 基本流程: 2 1,连接数据库: 3 $mylink = mysqli_connect(“localhost”, ‘root’, ‘123’); 4 2,设定连接编码(通常是utf8) 5 mysql_set_charset(“utf8”); //也可以使用:mysql_query(“set names utf8”); 6 3,选择数据库(如有需要) 7 mysql_select_db(“数据库名”); //也可以使用:mysql_query(“use 数据库名”); 8 4,执行sql命令。 9 $result = mysql_query( “几乎任何sql语句 ”); 10 返回的结果通常需要分两种情形进行处理: 4.1:如果是无返回数据的语句: 4.1.1 如果$result为true,表示执行成功 4.1.2 如果$result为false,表示执行失败 4.2:如果是有返回数据的语句: 4.2.1 如果$result为false,表示执行失败 4.2.2 否则,执行成功,需要继续从结果中取出数据并显示出来。
(3)上面代码样例展示:
所选的数据库:thkphp5,管理员是root,密码是root,表格是zixun,里面的数据展示:
我的PHP代码:
1 <?php 2 3 4 $link= mysqli_connect('localhost','root','root'); 5 // mysqli_character_set_name(); 6 mysqli_query($link,"set names utf8"); 7 mysqli_select_db($link,'thkphp5'); 8 $sql='select * from zixun'; 9 $result=mysqli_query($link,$sql); 10 while( $record = mysqli_fetch_array($result )){ 11 //mysql_fetch_array()函数的作用类似foreach对数组的作用:遍历(结果集) 12 //它每次去的结果集的“一行数据”,并“装入”到数组 $record 中 13 //该数组的下标就是该select的字段名,值就是对应行的数据值 14 echo "\n"; 15 echo "****" . var_dump($record) . "****"; 16 echo "\n"; 17 } 18 19 ?>
上面的是展示那个zixun表格的所有数据,现在我显示其中的 'Zid' 一项数据:
1 <?php 2 3 4 $link= mysqli_connect('localhost','root','root'); 5 // mysqli_character_set_name(); 6 mysqli_query($link,"set names utf8"); 7 mysqli_select_db($link,'thkphp5'); 8 $sql='select * from zixun'; 9 $result=mysqli_query($link,$sql); 10 while( $record = mysqli_fetch_array($result )){ 11 //mysql_fetch_array()函数的作用类似foreach对数组的作用:遍历(结果集) 12 //它每次去的结果集的“一行数据”,并“装入”到数组 $record 中 13 //该数组的下标就是该select的字段名,值就是对应行的数据值 14 echo "\n"; 15 echo "****" . $record['Zid'] . "****"; 16 echo "\n"; 17 } 18 19 ?>
结果展示:
1 补充php操作mysql的函数: 2 $record = mysql_fetch_array( 结果集$result ); 3 $n1 = mysql_num_rows( 结果集$result ): 获取结果集的行数 4 $n2 = mysql_num_fields( 结果集$result ): 获取结果集的列数 5 mysql_field_name( 结果集$result, $i ): 获取结果集中的第i个字段名(i从0开始)
比如:我再插入一个数据,代码展示:
1 <?php 2 3 4 $link= mysqli_connect('localhost','root','root'); 5 // mysqli_character_set_name(); 6 mysqli_query($link,"set names utf8"); 7 mysqli_select_db($link,'thkphp5'); 8 $sql='INSERT into zixun(ZX_id,ZX_name,ZX_fenlei,ZX_zuozhe,gengxin_time,liulan_cishu,fabu_zhuangtai) values(100020,\'english\',\'理论\',\'王超\',\'2017-08-10 12:58:01\',100,\'草稿\');'; 9 $result=mysqli_query($link,$sql); 10 if($result){ 11 echo "插入成功!!!"; 12 }else{ 13 echo "插入失败!!!!"; 14 }
然后结果展示:
那个100020就是我们的插入数据