Heim  >  Artikel  >  Backend-Entwicklung  >  php的mssql_fetch_row、mssql_fetch_array、mssql_fetch_assoc及mssql_fetch_objcect读取数据的

php的mssql_fetch_row、mssql_fetch_array、mssql_fetch_assoc及mssql_fetch_objcect读取数据的

WBOY
WBOYOriginal
2016-07-25 09:05:201005Durchsuche
  1. require 'dbconn.php';
  2. $sql = 'select * from _Test';
  3. $query = mssql_query($sql);
  4. while($row=mssql_fetch_row($query))
  5. {
  6. echo $row['UserId'].'::'.$row[1].'
    ';
  7. }
复制代码

返回: Notice: Undefined index: UserId in D:/_PHP_Test/Test2/test_connLocalDB.php on line 32 ::王小一 Notice: Undefined index: UserId in D:/_PHP_Test/Test2/test_connLocalDB.php on line 32 ::王小二 Notice: Undefined index: UserId in D:/_PHP_Test/Test2/test_connLocalDB.php on line 32 ::王小三 Notice: Undefined index: UserId in D:/_PHP_Test/Test2/test_connLocalDB.php on line 32 ::王小四 Notice: Undefined index: UserId in D:/_PHP_Test/Test2/test_connLocalDB.php on line 32 ::王小五

分析: mssql_fetch_row(),和用mssql_fetch_array()加上第二个可选参数 MYSQL_NUM 完全相同。从和指定的结果标识关联的结果集中取得一行数据并作为数组返回。每个结果的列储存在一个数组的单元中,偏移量从 0 开始。 注意,这里是从0开始偏移,不能用key值(字段名)来取值,只能用索引来取值。因此,这里使用$row['key值']无法取到值。

二、方法名: mssql_fetch_assoc() 示例:

  1. $query = mssql_query($sql);
  2. while($row=mssql_fetch_assoc($query))
  3. {
  4. echo $row['UserId'].'::'.$row[1].'
    ';
  5. }
复制代码

返回: Notice: Undefined offset: 1 in D:/_PHP_Test/Test2/test_connLocalDB.php on line 43 1:: Notice: Undefined offset: 1 in D:/_PHP_Test/Test2/test_connLocalDB.php on line 43 2:: Notice: Undefined offset: 1 in D:/_PHP_Test/Test2/test_connLocalDB.php on line 43 3:: Notice: Undefined offset: 1 in D:/_PHP_Test/Test2/test_connLocalDB.php on line 43 4:: Notice: Undefined offset: 1 in D:/_PHP_Test/Test2/test_connLocalDB.php on line 43 5:: 分析: mssql_fetch_assoc() 和用mssql_fetch_array()加上第二个可选参数 MYSQL_ASSOC 完全相同。它仅仅返回关联数组。这也是 mssql_fetch_array()起初始的工作方式。因此用$row[索引值]无法取到值。

三、方法名: mssql_fetch_array() 示例:

  1. $query = mssql_query($sql);
  2. while($row=mssql_fetch_array($query))
  3. {
  4. echo $row['UserId'].'::'.$row[1].'
    ';
  5. }
  6. ?>
复制代码

返回: 1::王小一 2::王小二 3::王小三 4::王小四 5::王小五

分析: mssql_fetch_array(),是mssql_fetch_row()的扩展版本。除了将数据以数字索引方式储存在数组中之外,还可以将数据作为关联索引储存,用字段名作为键名。 因此这里使用$row['key值']和$row[索引值]皆可以取到值。

mssql_fetch_array() 中第二个参数result_type (这是一个常量)为可选参数,取值范围为:MYSQL_ASSOC ,MYSQL_NUM 和 MYSQL_BOTH 。其中: mssql_fetch_array($query, MYSQL_ASSOC) == mssql_fetch_assoc($query); mssql_fetch_array($query, MYSQL_NUM) == mssql_fetch_row($query); 所以mssql_fetch_array()函数在某种程度上可以算是mssql_fetch_row()与 mssql_fetch_assoc ()的集合。因此,mssql_fetch_array()另外还有MYSQL_BOTH参数,将得到一个同时包含关 联和数字索引的数组。

四、方法名: mssql_fetch_object() 示例:

  1. $query=mssql_query($sql);
  2. while($row=mssql_fetch_object($query))
  3. {
  4. echo $row->UserId.'::'.$row->CreateTime."
    ";
  5. }
复制代码

返回: 1::06 7 2011 4:46PM 2::06 7 2011 4:46PM 3::06 7 2011 4:46PM 4::06 7 2011 4:46PM 5::06 7 2011 4:46PM

分析: mysql_fetch_object() 和 mssql_fetch_array类似,只有一点区别,即返回一个对象而不是数组,并将字段名字做为属性。间接地也意味着只能通过字段名来访问,而不是偏移量。



Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn