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()将获得依次获得一个结果行,并填充到绑定变量中

  • 相关阅读:
    magento 产品目录全部修改 :
    zencart 支付流程总结
    去掉 power by ecshop的方法
    ECSHOP实现收货国家省市由选择下拉菜单改为手动
    MYSQL的随机抽取实现方法
    Ecshop中导航栏中使用二级菜单显示并调用子分类
    打包遇到的问题
    jQuery is not defined问题
    实现表格中每行展开收起内容
    jQuery对象与DOM对象的相互转化
  • 原文地址:https://www.cnblogs.com/atmacmer/p/5886929.html
Copyright © 2011-2022 走看看