zoukankan      html  css  js  c++  java
  • 第11章 使用PHP从Web访问MySQL数据库

    1.过滤用户可能值其搜索条件的起始或结束位置不小心输入的空白字符: 应用trim();

    2.转义数据(第4章)函数:addslashes(),stripslashes(),get_magic_quotes_gpc();

    3.在脚本中连接MySQL服务器:mysqli(…,…,…,…);

          //面向对象的方法(实例化一个对象)

         @ $db=new mysqli(‘localhost’,’bookorama’,’bookorama123’,’books’);

          //面向过程的方式

         @ $db=mysqli_connect(‘localhost’,’bookorama’,’bookorama123’,’books’);

          //测试连接的结果的函数:mysqli_connect_errno()

    4.从Web连接数据库:

              mysqli_select_db(db_resource, db_name);

         或 $db->select_db(dbname);

    5.查询数据库:

              $result=$db->query($query);  //面向对象版本

              $result=mysqli_query($db,$query);   //面向过程版本

    6.返回记录行的行数:

              $num_results=$result->num_rows;  //面向对象版本

              $num_results=mysqli_num_rows($result);  //面向过程版本

    7.

    ①获取集合中某一行并以一个相关数组返回该行:

              $row=$result->fetch_assoc();  //面向对象版本

              $row=mysqli_fetch_assoc($assoc);  //面向过程版本

        然后通过$row[‘title’],$row[‘author’]等来访问每个属性;

    ②获取一行并取回到一个对象中:

              $row=$result->fetch_object();  或 $row=mysqli_fetch_object($result);

         然后通过$row->title,$row->author等来访问每个属性;

    8.从数据库断开连接:

         ①释放结果集: $result->free(); 或 mysqli_free_result($result);

         ②关闭与数据库的连接:$db->close(); 或 mysqli_close($db);

    9.prepared语句:

       ①查询速度更快,可免受sQL注射风格的攻击;

       ②基本思想:向MySQL发送一个需要执行的查询模板,然后再单独发送数据;

                如:  【INSERT插入操作:用prepare绑定参数】

                         $query=”insert into books values(?,?,?,?)”;  //查询模板

                         $stmt=$db->prepare($query);  //构建需要用来完成实际处理的资源

                         $stmt->bind_param(“sssd”,$isbn,$author,$title,$price);

                         //bind_param()告诉PHP哪些变量应该被问号所替换

                         //第一个参数(这里是”sssd”)是一个格式化字符串

                         //sssd:所传递的四个参数分别是字符串、字符串、字符串、双精度

                         //s:字符串  d:双精度  i:整数  b:blob

                         //过程版本中是mysqli_stmt_bind_param()

                         $stmt->execute();  //调用execute()函数时才真正运行此查询

                        //过程版本中是mysqli_stmt_execute()

                         【SELECT选择操作:用prepare绑定结果】

                         $stmt->bind_result($isbn,$author,$title,$price);  //提供希望填充结果列的变量列表

                         //mysqli_stmt_bind_result()

                         $stmt->execute();

                         //然后在循环中调用如下语句:

                         $stmt->fetch();  //fetch()将获得依次获得一个结果行,并填充到绑定变量中

  • 相关阅读:
    OSX安装nginx和rtmp模块(rtmp直播服务器搭建)
    用runtime来重写Coder和deCode方法 归档解档的时候使用
    Homebrew安装卸载
    Cannot create a new pixel buffer adaptor with an asset writer input that has already started writing'
    OSX下面用ffmpeg抓取桌面以及摄像头推流进行直播
    让nginx支持HLS
    iOS 字典转json字符串
    iOS 七牛多张图片上传
    iOS9UICollectionView自定义布局modifying attributes returned by UICollectionViewFlowLayout without copying them
    Xcode6 iOS7模拟器和Xcode7 iOS8模拟器离线下载
  • 原文地址:https://www.cnblogs.com/atmacmer/p/5886929.html
Copyright © 2011-2022 走看看