关闭

PHP连接数据库基础知识及易错点

2131人阅读 评论(4) 收藏 举报
分类:

//会不定时更新…

emmmmm,想用PHP写计网的课设,所以滚去看了下PHP连接数据库…

以下操作都是在Ubuntu17.04,LAMP下进行,且PHP数据库的扩展包为MySqli,MySqli为MySql的加强版,在使用上稍有区别,比较容易混淆,要注意

下面是PHP连接数据库的一些最最最基本的操作额,分界线两边的代码要分开操作

一些细节问题:

mysqli_connect()的第一个参数就是本机的地址,写localhost或127.0.0.1都可以,别写成当前代码的地址了(自己当时就这么干了,很蠢诶

数据库的用户名一般是root,如果密码没被修改,也是root,否则就是修改之后的,要是忘了密码又修改过,只能自行百度了

mysqli_connect()的返回值不能输出,输出会导致后面的程序难以进行

用mysqli_query()建数据库建表的时候,如果数据库或者表已经建了一次就不会再建第二次了

<?php

//我配置的是mysqli库

//用mysqli_connect()连接数据库
@$link = mysqli_connect('127.0.0.1','root','Vmorish');
if( $link){
    echo 'PHP连接数据库成功!'.'<br>';
}else{
    echo 'PHP连接数据库失败'.'<br>';
}

//------------------------------------分界线------------------------------

//用mysqli_select_db()指定要操作的数据库
//在这之前需要连接数据库,我们就用上面的
//句柄要作为第一个参数
@$ok = mysqli_select_db($link,"phpdb");
// echo $ok.'<br>';
if( $ok){
    echo '数据库选择成功'.'<br>';
}else{
    echo '数据库选择失败'.'<br>';
}
mysqli_close($link);

//------------------------------------分界线------------------------------

// 用mysqli_query()函数操作数据库
// 在MySql中创建一个数据库newdata,并在这个数据库中创建一个表testtable,表的字段可以随意设置
$id = mysqli_connect('127.0.0.1','root','Vmorish');
mysqli_query($id,'CREATE DATABASE newdata');
mysqli_select_db($id,'newdata');
$sql = "CREATE TABLE hhh(name varchar(10), age int(4))";
if( mysqli_query($id,$sql)){
    echo '表创建成功'.'<br>';
}else{
    echo '表创建失败'.'<br>';
}
mysqli_close($id);

//------------------------------------分界线------------------------------

//用mysqli_query()向表中插入数据
$link = mysqli_connect('127.0.0.1','root','Vmorish');
mysqli_select_db($link,'phpdb');
$sql = "CREATE TABLE mess(name varchar(10), age int(4))";
mysqli_query($link,$sql);
mysqli_query('SET CHARACTER gb2312');
for( $i = 1; $i < 6; $i++){
    $n1 = $i+20;
    $xm = 'name'.$i;
    $sql = "INSERT INTO mess VALUES('".$xm."',".$n1.")";
    $excu = mysqli_query($link,$sql);
    if( $excu){
        echo '第'.$i.'条数据插入成功!'.'<br>';
    }else{
        echo '数据插入失败'.'<br>';
    }
}
mysqli_close($link);

//------------------------------------分界线------------------------------

//用PHP从表中读取数据
    $link = mysqli_connect('127.0.0.1','root','Vmorish');
    mysqli_select_db($link,'phpdb');
    mysqli_query('SET CHARACTER SET gb2312');
    $query = 'SELECT * FROM mess';
    $result = mysqli_query($link,$query);
    // var_dump($result);
    echo "<table border=1 width=200><tr><td>姓名</td><td>年龄</td></tr>";
    $datanum = mysqli_num_rows($result);
    echo "表mess中共有".$datanum."条数据<br>";
    for( $i = 1; $i <= $datanum; $i++){
        //本来写的是$info = mysqli_fetch_array($result,MySQLI_ASSOC);,没有结果
         $info = mysqli_fetch_array($result);
        //  var_dump($info);
         echo "<tr><td>".$info['name']."</td>";
         echo "<td>".$info['age']."</td></tr>";
    }
    echo "</table>";
    mysqli_close($link);

 ?>


用上面的知识来实现分页功能:

tml>
<head>
    <title>实现数据的分页</title>
</head>

<body>
    <?php
        $link = mysqli_connect("127.0.0.1","root","Vmorish");
        $choose = mysqli_select_db($link,"phpdb");//连接PHP和数据库
        $query = "SELECT * FROM student";//查询语句
        $result = mysqli_query($link,$query);//返回结果集
        $totalnum = mysqli_num_rows($result);//结果集中存在多少行数据
        $pagesize = 15;//设置每页显示15条
        //用GET方法在URL中传递参数,if语句判断是否传递了这个参数,如果传递了,说明用户选择了某一页,如果参数为空或者未传递,说明本页面可以直接被打开,显示第一页
        $page = $_GET["page"];
        // var_dump($page);
        if( $page == ""){
            $page = 1;
        }
        $begin = ($page-1)*$pagesize;//计算每页的第一条是表里的第多少条
        $totalpage = ceil($totalnum/$pagesize);//向上取整,看最多要用多少页去显示所有数据
        echo "<table border=1 width=500><tr><td>学号</td><td>姓名</td><td>专业</td><td>年龄</td></tr>";
        $datanum = mysqli_num_rows($result);
        echo "表student中共有".$totalnum."条数据<br>";
        echo "每页显示".$pagesize."条,共".$totalpage."页<br>";
        for( $i = 1; $i <= $totalpage; $i++){
            echo "<a href=paging.php?page=".$i."><font color=black>[".$i."] </a>";
        }

        $query = "SELECT * FROM student limit $begin,$pagesize";//选择表里从$begin条开始,$pagesize条
        $result = mysqli_query($link,$query);
        $datanum = mysqli_num_rows($result);
        for( $i = 1; $i <= $datanum; $i++){
            $info = mysqli_fetch_array($result);
            echo "<tr><td>".$info['id']."</td>";
            echo "<td>".$info['name']."</td>";
            echo "<td>".$info['major']."</td>";
            echo "<td>".$info['age']."</td></tr>";
        }
        echo "</table>";

        mysqli_close();
     ?>
</body>

</html>


转载请注明出处:http://blog.csdn.net/cherish0222/article/details/77978378

0
0
查看评论

初级php基础知识问答题(答案仅供参考)

php基础阶段内容 一、 php 基本概念,常规语法 1.什么是php? Hypertext Preprocessor,超文本预处理器,它是个被广泛运用在网页程式撰写的语言,尤其是它能适用于网页程式的开发及能够嵌入HTML文件之中; PHP的目的是为了能使网站开发者可以快速地撰写...
  • wieyi
  • wieyi
  • 2016-06-08 17:39
  • 916

PHP基础知识总结(w3c)

刚开始学习PHP,以后大家多多指教: 学习后台是一个漫长的过程,刚学PHP,总结了一小部分,有人会问为什么把W3C的东西拷贝出来分享呢? 我的回答是:W3C都是一些入门基础,很有实在意义,而且很多人不愿去W3C去学习,东西太多。 都愿意去看博客或者查资料学习,所以我分享给一些跟我一...
  • u013808667
  • u013808667
  • 2016-06-14 11:30
  • 498

C++基础知识汇总

C++面试题——基础概念篇 唐璐 http://blog.csdn.net/worldwindjp/         面试C++程序员的时候一般都是3板斧,先是基础问答,然后一顿虚函数、虚函数表、纯虚函数、抽象类、虚函数和析构函数、虚函数...
  • weiyuefei
  • weiyuefei
  • 2016-08-01 20:59
  • 1114

Php基础知识

1、PHP 简介 PHP 脚本在服务器上执行。 在学习php之前,需要对下面的知识有基本的了解: HTMLCSSJavaScript 1.1 什么是 PHP? PHP 是 "PHP Hypertext Preprocessor" 的首字母缩略词PHP 是一种被广泛使用...
  • hebbely
  • hebbely
  • 2016-06-15 09:12
  • 3957

XAMPP实现HTML&MySQL&PHP简单的表单与数据库交互

一、开发项目 功能介绍:做一个学生成绩录入的项目,在表单中输入相应的信息和成绩并保存,在MySQL控制台下可以查看到刚才输入的数据,并且可以输入某学生的学号,删除相应学生的全部信息 二、开发前的准备: 1.开发环境:windows...
  • webyzx
  • webyzx
  • 2017-04-16 11:39
  • 1824

PHP基础知识点总结

1.php数组 var_dump()函数返回数组的数据类型和值 2.php对象 在 PHP 中,对象必须声明。 首先,你必须使用class关键字声明类对象。类是可以包含属性和方法的结构。 然后我们在类中定义数据类型,然后在实例化的类中使用数据类型:...
  • u011053407
  • u011053407
  • 2015-11-17 17:49
  • 733

浅谈c语言中的易错点

1、printf中字符串过长时需要折行书写使得程序更加易读printf("随便打的话随便打的话随便打的话随便打的话随便打的话");用下面的方式直接折行会报错printf("随便打的话随便打的话随便打的话 随便打的话随便打的话");①用”” “”字符串分成几段中...
  • Xiyou_Windows
  • Xiyou_Windows
  • 2015-11-17 11:58
  • 639

2018年全国计算机等级考试二级公共基础知识总结汇总

2018年全国计算机等级考试二级公共基础知识总结汇总   1.1 算法    算法:是解题方案的准确而完整的描述。通俗地说,算法就是计算机解题的过程。算法不等于程序,也不等于计算方法,程序的编制不可能优于算法的设计。    (1)确定性,算法中每一步骤都必须有明确定义,不允许有...
  • qq_38669940
  • qq_38669940
  • 2018-01-23 08:37
  • 10

C语言语法易错点全揭(不断更新中……)

1,C语言中关键字1)首先,系统保留的32个关键字 auto    break      case    char     ...
  • iindus
  • iindus
  • 2010-07-19 16:16
  • 1705

C/C++易错难点笔记03

在做C++各类题目的过程中,有很多题目看似,却有点难(对于我来说~~),所以我将这些题目积累慢慢积累下来,并记录。
  • z702143700
  • z702143700
  • 2015-09-08 21:47
  • 552
    个人资料
    • 访问:37216次
    • 积分:1798
    • 等级:
    • 排名:千里之外
    • 原创:148篇
    • 转载:7篇
    • 译文:0篇
    • 评论:11条
    最新评论