本文实例总结了PHP MariaDB数据库操作基本技巧。分享给大家供大家参考,具体如下:
视频教程是比较常见的搭配,由于我主观上不太喜欢甲骨文,而关系型数据库被它收购后,骨子里也发生了一些变化,因此我更换了MariaDB,仍然坚持关系型数据库当初开源信念的亲兄弟。本质上都是关系型数据库的内核,因此下面所有的数据库操作代码,都是可以直接在关系型数据库使用的。
晚上搭好PHP Apache的基础环境,以及安装好关系型数据库数据库后,写了一个最简单的数据库连接代码,结果报了如下经典错误:致命错误:找不到类“mysqli”
?PHP $ db=new MySQL(' localhost ',' root ',' admin ',' test ');if(MySQL _ connect _ errno()){ echo ' p ' ."连接数据库错误";退出;}?其实这问题比较简单,从服务器端编程语言(专业超文本预处理器的缩写)引擎返回的错误就知道扩展没有被正确的加载,绝大多数的问题都发生在php.ini文件的配置中,"扩展名=php _ mysqli.dll "这个配置项前面默认的分号没有去掉。这个错误我倒没有犯,php安装路径中的外面的(外部的简写)目录中,也有PHP _ MySQL李。dll这个文件,那问题发生在哪里呢?问题应该还是发生在php.ini文件中哪个地方写错了。走读后发现"扩展目录='ext ' "个地方没有修改。我当时脑子没多想,觉得服务器端编程语言(专业超文本预处理器的缩写)引擎是能够自动找到这个相对路径的。但后来想想,PHP引擎是被街头流氓加载的阿帕奇可不知道这个相对关系。还是老老实实的把这个地方改成了绝对路径,好的了。其实可以在这个代码之前,先写这么一段代码,看看扩展组件是否已经被加载了,这个方法适用于其他组件的加载前的判断。
if(extension _ loaded(' MySQL ')){ echo ' yes ';} else { echo ' no}下面用一个用户注册和系统登录记录视频教程的最基本操作方法。
1、创建数据库、表和用户。
如果存在"测试",删除数据库;创建数据库`测试`使用`测试`;如果存在“tbl_user”,则删除表;CREATE TABLE ` TBL _ user `(` username ` varchar(32)NOT NULL DEFAULT ' ',password ` varchar(32)NOT NULL DEFAULT ' ',PRIMARY KEY(` username `))ENGINE=InnoDB DEFAULT CHARSET=GB 2312;2、创建注册和登录的超文本标记语言页面,分别是register.html和login.html。如下图所示:
3、注册和登录的代码:
register_do.php
?PHP $ username=$ _ POST[' username '];$ password=$ _ POST[' password '];$ db=新MySQL(' localhost ',' root ',' admin ',' test ');if(MySQL _ connect _ errno()){ echo ' p ' ."连接数据库错误";退出;} $query='从tbl _用户中选择*其中用户名=' ' .$username .回声p .$ query $ result=$ db-query($ query);if($ result){ echo ' p } .用户的。$用户名。"存在";回声p .a href='寄存器。html ' rel='外部不跟随' rel='外部不跟随'返回注册/a;} else { $ query=' insert in TBL _ user values ').$用户名.', ''.$password。”)';回声p .$ query $ result=$ db-query($ query);if($ result){ echo ' p } .注册。html ' rel='外部不跟随' rel='外部不跟随'注册成功/a;} }?login_do.php
?PHP $ username=$ _ POST[' username '];$ password=$ _ POST[' password '];$ db=新MySQL(' localhost ',' root ',' admin ',' test ');if(MySQL _ connect _ errno()){ echo ' p ' ."连接数据库错误";退出;} $query='从tbl _用户中选择*其中用户名=' ' .$用户名.和密码=' '。$password。”;回声p .$ query $ result=$ db-query($ query);if ($result-num_rows) { echo 'p ' .a href='登录。html ' rel='外部不跟随' rel='外部不跟随'登录成功/a;} else { echo ' p .a href='登录。html ' rel=' external nofollow ' rel=' external nofollow '登录失败/a;}?userlist.php
?PHP $ db=new MySQL(' localhost ',' root ',' admin ',' test ');if(MySQL _ connect _ errno()){ echo ' p ' ."连接数据库错误";退出;}回声p .所有用户如下: ';$query='按用户名从tbl _用户订单中选择* ';if($ result=$ db-query($ query)){ while($ row=$ result-fetch _ assoc()){ echo ' p ' .用户名: '。$row['username'].a href='userdelete.php?用户名='。$row['username']'rel="外部没有跟随“删除/a;} }?4、该页面最终的显示效果如下图所示:
5、删除用户的代码:
userdelete.php
?PHP $ username=$ _ GET[' username '];$ db=新MySQL(' localhost ',' root ',' admin ',' test ');if(MySQL _ connect _ errno()){ echo ' p ' ."连接数据库错误";退出;} $query='从tbl _用户中删除,其中用户名=' ' .$username .回声$查询;if($ result=$ db-query($ query)){ echo ' p ' .删除用户。$用户名。"成功";} else { echo ' p .删除用户。$用户名。"失败";}回声p .a href='用户列表。PHP ' rel='外部无跟随'返回用户列表/a;准备预处理
1、图书添加的页面如下图所示(bookadd.html):
2、建表脚本如下:
如果存在"测试",删除数据库;如果不存在,创建数据库`测试`;使用"测试";如果存在,删除表` tbl_book `;如果不存在则创建表格` TBL _ book `(` ISBN ' varchar(32)不为空,` title ' varchar(32)不为空,` author ' varchar(32)不为空,` price` float不为空,PRIMARY KEY(` ISBN `) ENGINE=InnoDB DEFAULT CHARSET=utf-8;3、添加的逻辑处理代码如下(bookadd_do.php):这里特别要注意的是这句话" $ db-query(' set name utf-8 ')",代表向数据库写入数据时,采用utf-8编解码,显示的对数据库表操作的编解码进行设置,以防止中文的乱码。后面我会专门针对这个技术点记录一篇文章。
?PHP $ ISBN=$ _ POST[' ISBN '];$ title=$ _ POST[' title '];$ author=$ _ POST[' author '];$ price=$ _ POST[' price '];$ db=新MySQL(' localhost ',' root ',' admin ',' test ');if(MySQL _ connect _ errno()){ echo ' p ' ."连接数据库错误";退出;} $ db-query(' set name utf-8 ');//特别注意这句话$ stmt=$ db-stmt _ init();$stmt-prepare('插入待定_图书值(?)');$stmt-bind_param('sssd ',$isbn,$title,$author,$ price);$ stmt-execute();回声p ."影响行"是$ stmt-受影响的行;回声p .a href='书单。PHP ' rel='外部无跟随'转到图书列表页/a;4、显示图书信息的逻辑代码如下,同样注意这句话" $ db-query(' set name utf-8 ')":
?PHP $ db=new MySQL(' localhost ',' root ',' admin ',' test ');if(MySQL _ connect _ errno()){ echo ' p ' ."连接数据库错误";退出;} $ db-query(' set name utf-8 ');//特别注意这句话$ stmt=$ db-stmt _ init();$stmt-prepare('从待定_图书中选择* ');$stmt-bind_result($isbn,$title,$author,$ price);$ stmt-execute();while($ stmt-fetch()){ echo ' ISBN : ' .$isbn .p ';回声'标题: '。$标题p ';回声'作者: '。$作者p ';回声'价格: '。$价格p ';回声p .' - ' .p ';}?5、显示的页面如下图所示:
好了,最基础的部分就记录到这,PHP引擎提供了很方便的数据库操作方法,但正是开发绝不是如此简单,各种异常要仔细考虑如何捕获,如何处理。数据库的设计也是一个挺好玩的话题。
更多关于服务器端编程语言(专业超文本预处理器的缩写)相关内容感兴趣的读者可查看本站专题: 《php+mysqli数据库程序设计技巧总结》 、 《php面向对象程序设计入门教程》 、 《PHP数组(Array)操作技巧大全》 、 《PHP基本语法入门教程》 、 《php字符串(string)用法总结》 、 《php+mysql数据库操作入门教程》 及《php常见数据库操作技巧汇总》
希望本文所述对大家服务器端编程语言(专业超文本预处理器的缩写)程序设计有所帮助。