php对mysql基础操作_php+mysql的基础操作

标签:

PHP可以说是当下很火的一门后端语言了,它小巧玲珑,和html等前端语言配合的可以说是天衣无缝,加之xampp,wampp等工具的出现,更是前端开发者的福音,作为一名前端ER,如果不熟悉一门后端语言的话,那简直都不好意思说自己要加薪,那么我们对于php这门语言学习时,如果我们对js或者其他任何一门语言学的好的话,再去学习一门新的语言那是很好上手的,无非就是先从变量,常量,执行语句,循环条件判断,数组,函数,面向对象,加上这门语言的一些高级函数,什么date,画图,浏览器信息存储函数啦,逐个的去看去对比,真的很顺手有没有,那么我们今天就来看一下我们前端经常用到的一些php+mysql操作,这需要我们有一定的mysql基础了.

当我们建好了一个表的时候,我们很自然的就会去想到,我们要怎么去查找信息,增加信息,修改信息,删除信息,那么这就是我们最基础的操纵了,在操作这个数据表之前,我们需要先找到它 代码1:

1 //这里我们使用mysql_connect来进行数据库的链接,它一共有三个参数,分别是,数据库地址,用户名,用户密码,对于mysql的配置,我们可以使用shell命令行或者myphpAdmin进行界面配置

2 $con = mysql_connect(‘localhost‘,‘root‘,‘123‘);3 if($con){4 echo "连接数据库成功";5 }6 else{7 echo mysql_error();8 echo "连接数据库失败";9 }10 //当我们连接到了整个数据库后,我们需要去找到库中我们的小仓库,这里使用函数mysql_select_db(‘仓库名‘);

11 if(mysql_select_db(‘mysql‘)){12 echo mysql_error();13 }14

15 //设置转码字符

16 if(mysql_query(‘set names utf8‘)){17

18 }else{19 echo mysql_error();20 }

需要说明的是,在php5之后,对于MySQL数据库操作的函数开头变为了mysqli,这两者的区别也是有的,mysqli的功能更强大,增加了面向对象功能,但它也是向下兼容的,在用法上二者有细微的差别,这里我们的实例都是使用的mysql开头的函数,当我们成功连接到数据库后,我们先来进行插入数据 代码2:

//首先我们先建立一个表单,指定提交方式为post,当提交时执行a.php文件

$username = $_POST[‘username‘];//从超级全局变量中取到表单提交过来的值

$password = $_POST[‘password‘];

//这里就是我们的数据插入语句,其中uers是代码1中小仓库mysql总的一个表,表名为users;$sql = "inset into users (username,password)values(‘$username‘,‘password‘)";mysql_query($sql);//使用mysql_query()函数来执行sql语句来达到操作数据库,它就像是一个终端,可以执行我们输入的mysql操作语句,

?>

对于代码2,首先是建立一个提交表单,每一输入框中设定它的name属性,每一个name属性就是超级全局变量数组$_POST中的key值,所以在php中我们可以获得提交的值,在插入语句的书写时,因为我们在php中的书写方式是以字符串的形式来书写的,所以不会有编译器的提示功能,就算写错 编译器也不会立马提醒你,所以在这块一定要多注意,特别是双引号,单引号嵌套的问题,当我们插入了一条语句后,那你说姓名数错了,我想要改一些,那么php当然可以改,那么在修改的时候我们就要注意了,修改不像插入一样,直接插入到了表尾,这是计算机就会问了,我要修改哪一个呢 代码3:

1 //还是原来的表单,和原来不一样的配方,2 //在数据库中,我们给每一行记录都加一个ID,这个字段称为主键,我们将它设置为自增的.3 //我们在点击修改按钮时将id通过get方法传送过来,这是就可以通过id获得数据条了,4 //获得传过来的id值

5 $id = $_GET[‘id‘];6 //执行mysql语句,返回选择中的资源

7 $query = mysql_query("select * from article where id=$id");8 //通过mysql_fetch_assoc函数来将数据转换为一个关联数组,还有几个作用类似的函数,我们在代码5中介绍,

9 $data = mysql_fetch_assoc($query);10

11

12

13

14

好了,上边的代码,只是我们修改数据的一个准备工作,我们在修改前,需要将要修改的数据输出到修改界面中,这样用户可以直观的看到他修改了数据,不能将修改数据搞的像输入信息一样,那样体验性从何而来,代码4:

//这里就和我们插入信息时情况差不多了,

$id = $_POST[‘id‘];$username=$_POST[‘username‘];$password =$_POST[‘password‘];//获取表单修改后的值

//执行修改语句update

$updatesql = "update article set

username=‘$username‘,password=‘$password‘where id=$id";if(mysql_query($updatesql)){echo "";//修改成功

}else{echo "";

}?>

修改成功了我们的信息后,我们就来看一下php中常用的那些用来获取数据记录的函数:比如mysql_fetch_array,mqsql_fetch_assoc,mysql_fetch_row等等;代码5:

//$res是获取到的资源

$row1= mysql_fetch_row($res);//返回了查询到的数据的第一条

mysql_fetch_row每执行一次,都从资源也就是结果集中依次取一条数据,以数组形式返回出来,如果当前已经取到最后一条数据时,返回空结果$row2 = mysql_fetch_assoc($res);作用是返回一个关联数组,数组的下标就是我们在数据表中的字段名,这种方式我们可以随意的对每个字段进行操作.

$row3 = mysql_fetch_object($res);//返回一个对象.

$row4 = mysql_fetch_array($res);//mysql_fetch_array的第二个参数是一个关联数组: 也就是说返回的数据中有一个索引数组有一个关联数组,可以在其中传入第二个参数指定输出哪一个数组,MYSQL_ASSOC只输出关联数组

MYSQL_NUM:只输出索引数组,输出结果和mysql_fetch_row一样,但是它默认是输出两个数组.

看完了我们的插入和修改信息,相信对于删除信息也是很简单的了,道理都是一样的,获取到数据条的id,然后依据id去进行删除:代码6:

$id = $_GET[‘id‘];$deletesql = "delete from article where id=$id";if(mysql_query($deletesql)){echo "";

}else{echo "";

}

那么我们在实际应用中最多的另外一种情况就是查找信息了,我们可以用在数据库中信息查重,也可以用在用户登录信息的判断,数据库中的信息统计等:

//执行代码1进行数据库的连接

//接收到表单提交过来的信息,

$username = $_POST[‘username‘];$password = $_POST[‘password‘];//在这里,我们使用select语句去选择数据表中和username和password都相等的数据条,如果有,就证明我们输入的信息正确,能够登陆,否则,输入的信息不正确,

$sql = "SELECT * FROM users WHERE username=‘$username‘ and password=‘$password‘";$res = mysqli_query($conn,$sql);$row = mysqli_num_rows($res);$self= mysqli_fetch_assoc($res);if($row){echo "

";header(‘location:../main.php?id=‘.$self[‘id‘]);

}else{echo "";

}

当然,文中的代码对于所获取到的值都没有进行是否为空的判断,和格式是否正确,这都是要加上去的,代码的完善性还不高,到这里,php对于mysql的基本操作算是介绍了个大概,一起加油!

标签:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/336876.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

js内存泄露 垃圾回收_Java内存体系结构(模型),垃圾回收和内存泄漏

js内存泄露 垃圾回收Java内存架构(Java内存模型) 上面是堆的Java内存模型以及Java虚拟机(JVM)中运行的任何Java应用程序的PermGen。 还提供了比率,以使您更好地了解如何在每种生成类型之间分配允许的内存。 以上所有内…

qlineedit文本改变时_PyQt5 QLineEdit(单行编辑器) 学习

QLineEdit is a widget that allows to enter and edit a single line of plain text. There are undo and redo, cut and paste, and drag & drop functions available for the widget.代码:# codingutf-8from PyQt5.QtWidgets import QApplication, QWidget,\…

jboss7.0.2_红帽JBoss企业应用平台7.0 ALPHA发布了!

jboss7.0.2红帽JBoss企业应用程序平台7(JBoss EAP 7)是基于开放标准构建并符合Java Enterprise Edition 7规范的中间件平台。 它将WildFly Application Server 10与高可用性群集,消息传递,分布式缓存和其他技术集成在一起。 现在可…

java数组和list_Java中的数组和List

一.数组Array1.数组在内存中是连续存储的,所以它的索引速度是非常的快,而且赋值与修改元素也很简单2.声明数组的时候,必须同时指明数组的长度,数组的长度过长,会造成内存浪费,数组和长度过短,会…

sts集成jboss_与JBoss BPM Travel Agency更新了Modern BPM数据集成

sts集成jboss不久前,我们启动了一个规模较大的JBoss Travel Agency演示项目,以展示JBoss BPM Suite的一些更有趣的功能。 我们提供了一系列视频 ,不仅向您展示了如何安装它,项目中各种规则和流程工件的含义,还向您介绍…

java规则表达式_Java基础--正则表达式的规则

注意:正则表达式只关注格式是否正确,不关注内容是否有效。一、字符集合, []表示一个字符。1、[abc] :指a,b,c中的任意一个字符。2、[^abc]:指除了a,b,c外的任意字符。3、[a-z]:表示a到z间的任意一个字符。4、[a-zA-Z0-9]:表示a到z…

获取http请求标头_HTTP请求和标头参数的CDI拦截器–简单示例

获取http请求标头在使用Java EE开发和发展REST API的过程中,有些情况下您希望以更精细的方式(视情况)对传入的HTTP请求(特别是标头参数)进行“观察” Servlet过滤器或更具体的ContainerRequestFilters 。 我发现在某些…

java多线程区别_Java中实现多线程的两种方式之间的区别

Java提供了线程类Thread来创建多线程的程序。其实,创建线程与创建普通的类的对象的操作是一样的,而线程就是Thread类或其子类的实例对象。每个Thread对象描述了一个单独的线程。要产生一个线程,有两种方法:◆需要从Java.lang.Thre…

詹金斯搭建_与詹金斯一起将GitLab中的Gradle项目发布到Artifactory

詹金斯搭建我将详细展示如何定期构建您的项目,然后如何进行发布。 它涉及许多工具的协作,我发现很难正确设置这些工具,这就是我编写此代码的原因。 目标 我将向您展示如何实现以下两种方案。 第一个是如何进行常规开发的非发行版&#xff1a…

java socket优化_Java Socket编程代码优化

1.问题:在学习Java的Socket编程,写了一些代码练习,但是又不知道是否规范,是否有优化的空间?2.代码:package com.nekolr.socket;import com.google.common.util.concurrent.ThreadFactoryBuilder;import jav…

java 函数式编程_Java函数式编程:Javaslang入门

java 函数式编程Java是一门古老的语言,并且该领域中有很多新手在他们自己的领域(JVM)上挑战Java。 但是Java 8到来并带来了一些有趣的功能。 这些有趣的功能使编写新的惊人框架(例如Spark Web框架或Javaslang)成为可能…

java 线程组作用_Java线程组(ThreadGroup)使用

JDK 对线程组类注释:A thread group represents a set of threads. In addition, a thread group can also include other thread groups. The thread groups form a tree in which every thread group except the initial thread group has a parent.A thread is a…

web.xml.jsf_JSF 2.2在30秒内创建一个自定义Hello World组件

web.xml.jsf让我们直接跳到很酷的东西上,说在JSF 2.0中,通过在Facelet标记库( *taglib.xml )中对其进行配置,使页面作者可以使用自定义组件。 此外,当将组件映射到JAR中时,需要在web.xml一个特殊…

java左上角图标太小_Eclipse在高分屏下图标过小的解决方法

自己败了一台Surface Pro 4,打算用来看PDF、练代码。安装了Eclipse并且打开之后,发现图标显示极其细小,肉眼几乎无法看清了。这是由于Eclipse对高分屏没有作适配导致的。Windows 10本身对于高分屏的支持已是相当不错,苏菲4的屏幕分…

java胜任理由_Java在几乎所有方面均能胜任本机响应

java胜任理由我与一位同事讨论了Java与JavaScript的话题,这是一个有问题的话题。 然后他提到React Native多么出色,我决定我必须研究一下,也许要为Codename One掌握一些想法…… 那里有一些不错的主意,但是它们都不是革命性的或例…

java发送文件_java 模拟http发送文件和参数

一、maven:org.apache.httpcomponentshttpmime4.5.3二、工具类:import java.io.File;import java.util.Map;import java.util.Map.Entry;import org.apache.http.*;import org.apache.http.client.HttpClient;import org.apache.http.client.config.Requ…

设置Elasticsearch N-Gram字分析器的过程

说n-gram是一个大话题,这是轻描淡写的。 进行快速搜索,您会发现自己盯着语言学和语言模型,数据挖掘或特定蛋白质的分解对首次亮相文化的衰落所隐含的信息量。 好吧,我在跟那最后一个开玩笑。 但是,如果您是开发人员&a…

java字节码反编译_javap 反编译 java 字节码文件

概述:javap是 Java class文件分解器,可以反编译,也可以查看java编译器生成的字节码,从而对代码内部的执行逻辑进行分析。语法:把java文件编译为class文件:javac Test.java (Test.java为java文件名) 生成对…

javaone_JavaOne演讲者选择了您不容错过的10个会话

javaone确保会议安排中包含这些JavaOne会话 JavaOne 2015从这个星期日开始,数百个会话同时进行,因此很难筛选所有会话并选择要参加的会话。 这就是为什么我们邀请5位最喜欢的JavaOne发言人让我们了解他们的会议,并选择他们最期待的会议。 好…

java servlet文件下载_Java之Servlet文件下载20190228

jsp页面:pageEncoding"utf-8"%>Insert title here下载index.jsp下载1.jpg下载test.jspServlet:packageorg.jimmy.testwebproject2019012602.servlet.download;importjava.io.FileInputStream;importjava.io.IOException;importjava.io.InputStream;importjavax.se…