php错题选择题

博客分类: 笔记 阅读次数: comments

php错题选择题

2019/11/4 星期一

错题内容:

  1. mysql_num_fields($result) :计算查询的字段有多少个

    (扩展:mysql_num_rows($result) 计算查询的记录有多少条)

2.

   $a="hello";
   $b= &$a;
   unset($b);
   $b="world";
   echo $a;
   
   结果 "world"

解析:& 引用 指向同一个地址,unset掉一个,另一个还在

3.

<?
       $str = "LAMP";
       $str1 = "LAMPBrother";
       $strc = strcmp($str,$str1);
       switch($strc){
              case 1:
                     echo"str > str1";
                     break;
              case 1:
                     echo"str < str1";
                     break;
               case 0:
                     echo"str=str1";
                     break;
              default:
                     echo "str <> str1";
       }
?>
    结果"str<>str1" 相差7个并且str2>str 所以 是-7 ,没有选项所以输出default

解析:strcmp(str1,str2)是判断两个参数大小 并计算 有多少个字符差别

如果str1 == str2 返回 0

str1 > str2 则返回相差字符个数乘以1

str1 < str2 则返回相差字符个数乘以-1

<?php 
    class A{
       public static $num=0;
        public function __construct(){
            self::$num++; }
    }
    new A();
    new A();
    new A();
    echo A::$num;
?>
    结果 3

解析: static 静态变量会保存,调用三次 加了3

5.

<?php 
class A{
    public $num=100; 
}
$a = new A();
$b = $a;
$a->num=200;
echo $b->num;
?>
    结果:200

对象的复制是引用复制,指向同一个地址,取得值是同一个,相当与变量的a = &b

6.

PDO提供了多种不同的错误处理模式,不仅可以满足不同风格的编程,也可以调整扩展处理错误的方式。下面哪个不是PDO提供的错误处理模式 (ERRMODE_SILENT; ERRMODE_WARNING;ERRMODE_EXCEPTION)

结果 :PDO::ERRMODE_ERROR\

PDO::ATTR_ERRMODE: 错误提示. PDO::ERRMODE_SILENT: 不显示错误信息,只显示错误码. PDO::ERRMODE_WARNING: 显示警告错误 . PDO::ERRMODE_EXCEPTION: 抛出异常

解析:PDO中一共提供了三种不同的错误处理模式

① PDO::ERRMODE_SILENT:不报错误

② PDO::ERRMODE_WARNING:以警告的方式报错

③ PDO::ERRMODE_EXCEPTION:以异常的方式报错

​ PDO 提供了三种不同的错误处理模式,以满足不同风格的应用开发:

PDO::ERRMODE_SILENT 此为默认模式。 PDO 将只简单地设置错误码,可使用 PDO::errorCode() 和 PDO::errorInfo() 方法来检查语句和数据库对象。如果错误是由于对语句对象的调用而产生的,那么可以调用那个对象的 PDOStatement::errorCode() 或 PDOStatement::errorInfo() 方法。如果错误是由于调用数据库对象而产生的,那么可以在数据库对象上调用上述两个方法。

PDO::ERRMODE_WARNING 除设置错误码之外,PDO 还将发出一条传统的 E_WARNING 信息。如果只是想看看发生了什么问题且不中断应用程序的流程,那么此设置在调试/测试期间非常有用。

PDO::ERRMODE_EXCEPTION 除设置错误码之外,PDO 还将抛出一个 PDOException 异常类并设置它的属性来反射错误码和错误信息。此设置在调试期间也非常有用,因为它会有效地放大脚本中产生错误的点,从而可以非常快速地指出代码中有问题的潜在区域(记住:如果异常导致脚本终止,则事务被自动回滚)。

异常模式另一个非常有用的是,相比传统 PHP 风格的警告,可以更清晰地构建自己的错误处理,而且比起静默模式和显式地检查每种数据库调用的返回值,异常模式需要的代码/嵌套更少。

7.

PDO通过执行SQL查询与数据库进行交互,可以分为多种不同的策略,使用哪一种方法取决于你要做什么操作。如果向数据库发送DML语句,下面哪种方式最合适?
使用PDO对象中的exec()方法
使用PDO对象中的query()方法
对->			使用PDO对象中的prepare()和PDOStatement对象中的execute()两个方法结合
以上方式都可以

DML(data manipulation language): 它们是SELECT、UPDATE、INSERT、DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言 DDL(data definition language): DDL比DML要多,主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化工作上,他们大多在建立表时使用 DCL(Data Control Language): 是数据库控制功能。是用来设置或更改数据库用户或角色权限的语句,包括(grant,deny,revoke等)语句。在默认状态下,只有sysadmin,dbcreator,db_owner或db_securityadmin等人员才有权力执行DCL

蒙题类:

1:

get_class_vars — 返回由类的默认属性组成的数组 get_class_methods — 返回由类的方法名组成的数组 get_class — 返回对象的类名

2:使用mysqli对象中的affected_rows属性,对哪个操作没有影响? select delete update create