php学习笔记(一)——数据库连接及数据获取和添加

4 篇文章 0 订阅

最近想学习一下php简单的数据库操作,与前端页面结合,各种百度+调试,向自己想要的一点一点靠近。

因为要学习后端语言就需要有一个服务器环境,我选择的是wampserver集成化环境开发。

后端语言自然就选择了php,自我感觉php比其他的后端语言好学一点。

采用前后端分离的方式,前端用ajax获取php传递的数据。

然后再代码方面,刚开始我用的是mysql连接数据库,发现很多以mysql开头的代码都被一条横线杠掉了,然后去网上查询了一下,居然开始用mysqli来连接数据库了,进而百度(百度很强大,不懂先问他,之后才是人...)了解一下这两者的区别,然后得出一下结论:

 mysql连接每当第二次使用的时候,都会重新打开一个新的进程,而mysqli则只使用同一个进程,这样可以很大程度的减轻服务器端压力。

恩~~~~(此处深深地沉思...)

接下来开始代码,刚开始接触的时候都是Ctrl+c and Ctrl+v,接着就是各种调试,改改改...

1)连接数据库:

header ( "Content-type:text/html;charset=utf-8" );  //统一输出编码为utf-8
/* Connect to a MySQL server  连接数据库服务器 */
$link = mysqli_connect(
    'localhost',  /* The host to connect to 连接MySQL地址 */
    'root',      /* The user to connect as 连接MySQL用户名 */
    '',  /* The password to use 连接MySQL密码 */
    'test');    /* The default database to query 连接数据库名称*/

if (!$link) {
    printf("Can't connect to MySQL Server. Errorcode: %s ", mysqli_connect_error());
    exit;
}

/*此处搞点事情,比如修改,查询,删除数据库表内容等等等*/
......

/* Close the connection 关闭连接*/
mysqli_close($link);

我在本地访问自己远程服务器上的php文件出现报错,经过百度查询后得出以下结论:

如果使用ajax跨域请求数据库则会报错:

 No 'Access-Control-Allow-Origin' header is present on the requested resource. 

解决方法:

 需要在PHP页面中添加代码:header("Access-Control-Allow-Origin: *");

 如果服务器端可以确定是要被哪些域名访问,最好是能把以上代码中的“*”代替为具体的域名,这样做可以相应的增强安全性。

2)获取数据get.php

mysqli_query($link,'set names utf8'); //设置读取数据后的编码

$result = mysqli_query($link, 'SELECT * FROM t1'); //  查找test数据库里面的表t1

// 创建数组,存放数据库的数据并传递出去
$list = array();

while( $row = mysqli_fetch_assoc($result) ) 
{
$list[] = $row;//将数据库里面的每一行数据存到list数组里面去
}

echo json_encode($list);

 在php里面返回给ajax的数据用json_encode()传递,

 html页面:

 使用ajax获取php传递的数据

$.ajax({
                type: 'GET',
                url:'get.php',
                dataType:'json',
                success:function (data) {
                    console.log(data)
                }
            });

ajax接收到的data便是json_encode()传递的数据


3)添加数据post.php

$backinfo = ''; // 返回的信息
$sql = "INSERT INTO t1 (title, about,small) VALUES ('".$_POST['title']."','".$_POST['about']."','".$_POST['small']."')"; // cha
mysqli_query($link,'set names utf8'); //设置读取数据后的编码
if (mysqli_query($link, $sql)) {
    $backinfo = 1;
} else {
    $backinfo = 0;
}

echo json_encode($backinfo);
这里的title,about,small是数据表里面的字段,$_POST[]是页面上传递过来的数据,跟数据表里面的字段一一对应,


 html页面


1》使用form表单自带的属性将参数传递给php 


<form id="form1" method="post" action="post.php">
        <input type="text" placeholder="title" name="title" > 这里的name就是$_POST[]里面的内容
        <input type="text" placeholder="about" name="about" >
        <input type="text" placeholder="small" name="small" >
        <button type="submit">提交</button>
    </form>

 但是这样做有一个问题,就是每次提交后,页面都会跳转到get.php页面,而我不需要这样,所以改用ajax异步。

 2》使用ajax传递数据给php


 html
<form id="form1">
        <input type="text" placeholder="title" name="title" id="title">
        <input type="text" placeholder="about" name="about" id="about">
        <input type="text" placeholder="small" name="small" id="small">
        <button type="submit" id="btn">提交</button> //这两个按钮有区别
        <input type="button" id="btn" value="提交">  //这两个按钮有区别
</form>
 js
$("#btn").click(function(){
                $.ajax({
                    type: "post",
                    url: "post.php",
                    dataType: "json",
                    data:{
                        "title":$("#title").val(), //此时data里面的key值对应的是$_POST[]里面的内容
                        "about":$("#about").val(),
                        "small":$("#small").val()
                    },
                    success: function (result) {
                        alert(result); //拿到结果
                    }
                });
            })

刚开始我使用的是button标签来作为表单的提交按钮,然后我一直想要拿到php添加表单成功后的返回值,却一直失败,后来发现每当我提交页面都会刷新,自然我想要的返回值就没有出现(心里默念:其实他是返回来了的),度娘告诉我用input来作为form表单的按钮,之后就成功了。

button与input按钮的区别:

 1>>通过$('#btn').val()获取<button id="btn" value="test">按钮</button>value的值 
在IE(IE内核)下这样用到得的是值是“按钮”,而不是“test”,非IE下得到的是“test”。

 2>>把<button>标签放到<form>标签中,你会发现点击这个button变成了提交,相当于<input type="submit"/> ,
所以不要把<button>标签当成<form>中的input元素。 

button标签 
  定义和用法 
     button标签定义一个按钮。 
     在button元素内部,您可以放置内容,比如文本或图像。这是该元素与使用input元素创建的按钮之间的不同之处。 
     <button>控件与<input type="button">相比,提供了更为强大的功能和更丰富的内容。<button>与      </button>标签之间的所有内容都是按钮的内容,其中包括任何可接受的正文内容,比如文本或多媒体内容。例如,    我们可以在按钮中包括一个图像和相关的文本,用它们在按钮中创建一个吸引人的标记图像。 
   唯一禁止使用的元素是图像映射,因为它对鼠标和键盘敏感的动作会干扰表单按钮的行为。 
   请始终为按钮规定type属性。InternetExplorer的默认类型是"button",而其他浏览器中(包括W3C规范)的默认值    是"submit"。 







  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mosowe

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值