MySQL_ROW row; row=mysql_fetch_row(result); 这里的row[0],row[1]....,
作者&投稿:野邵 (若有异议请与网页底部的电邮联系)
一次取回一行,字段按照SELECT里面的次序,第一个为$row[0],依此类推
如果你要第三行,可以连续fetch三次,不过更好的办法是在SQL语句末尾添加“LIMIT 3,1”,这样就只返回第三行,减少WEB服务器与MYSQL数据库服务器之间的流量(这两者在生产环境往往不是一个机器,甚至是远程的)
$result为mysql_query()返回的资源标识符,mysql_fetch_row()函数根据资源标识符获取一条数据,并且资源标识符下移指向下一条数据,若没有数据mysql_fetch_row()返回false
while($row = mysql_fetch_row( $result ))
{
$arr[] = $row;
}
print_r( $arr );
工作原理就是当$row不为false时,逐行读取数据,进而$arr为数据集合
MYSQL_ROW 类型表示的是记录集里的一条数据,假如你的数据表里有10个字段,则
row[0]~row[9]里面保存的就是这10个字段的内容。
如果你不知道有多少个字段,则result对应的数据类型MYSQL_RES里面有一个叫field_count的变量,保存的是字段个数,另外还有个row_count保存的是记录条数,要把结果放到数据里面去,则可以试试下面的代码:
char cData[10][100];//假设有10个字段,每个字段最大长度为100个字节
//也可以使用刚才提到的field_count,row_count来动态分配数组
//取出一条数据
row= mysql_fetch_row(result);
//遍历每个字段
for(int i=0; i < result->field_count; i++)
{
//把字段值拷贝到数组中去
strcpy(cData[i], row[i]);
}
鄹奇润博: MySQL中有两个函数来计算上一条语句影响了多少行,不同于SqlServer/Oracle,不要因为此方面的差异而引起功能问题:1,判断Select得到的行数用found_rows()函数进行判断.2,判断Update或Delete影响的行数用row_count()函数进行判断,这里需要注意,如果Update前后的值一样,row_count则为0,而不像SqlServer里的@@rowcount或Oracle里的rowcount,只要update到行,影响的行数就会大于0,而无论update前后字段的值是否发生了变化.
偃师市19430532922: mysql怎么分析函数row - ?
鄹奇润博: 第一种方法:select (@i:=@i+1) as i,table_name.* from table_name,(select @i:=0) as it 第二种方法: set @rownum=0; select @rownum:=@rownum+1 as rownum, t.username from auth_user t limit 1,5;
偃师市19430532922: mysql5.5: 导入1G左右的txt文件,报错“Row 8 doesn't contain data for all columns”烦高手指点谢谢! - ?
鄹奇润博: 这个问题跟txt大小没有关系,报错的字面信息也提示了,第8行的数据上面有问题.以我的经验,可以第8行有空值,导致不能导入,提取出来跟第7行和第9行对比一下就知道了.也有另外一种可能,就是Windows操作系统最后的换行符是\r\n,*unix是\n,当前的客户端没有处理好换行.
偃师市19430532922: mysql 怎么实现row - ?
鄹奇润博: 要用变量如:set @row=0 select * from ( select (@row:=@row+1) as RowNum,* from 表--这里加排序用Order by )as A SQL Server --Row_Number Oracle--Row_number/rownum
偃师市19430532922: mysql中怎么解决关于ROW - ?
鄹奇润博: mysql中的ROW_COUNT()可以返回前一个SQL进行UPDATE,DELETE,INSERT操作所影响的行数.MySQL上的测试(数据库版本为:5.1.22):1.创建数据库表: 代码如下:create table t( id int, name varchar(50), address varchar(100), ...
偃师市19430532922: mysql与c语言连接,代码求解释. - ?
鄹奇润博: if (!mysql_real_connect(&mysql,"localhost", "root", "", "drug management", 3306, NULL, 0)) //判断数据库连接是否成功 if(t) //t是mysql_real_query的返值,使用if来判断sql语句执行是否成功.
偃师市19430532922: typedef char **MYSQL - ROW 什么意思 - ?
鄹奇润博: MYSQL_ROW > char ** MYSQL_ROW mysql_row; 等同于:char **mysql_row; typedef,可以理解为给类型取别名.
偃师市19430532922: 在MySQL里echo $row['FirstName'] . " " . $row['LastName'];表示什么意思? - ?
鄹奇润博: 这句代码应该是php代码,而不是Mysql吧 既然是$row,你又提到mysql,那么我推测之前是不是还有 while($row = mysql_fetch_array($result))$row这个变量是从mysql查询结果集中获取的一行数据,每个字段名做为row的键名,数据就是对应的单元值.
偃师市19430532922: mysql - fetch - row($sql)会得到二维数组? - ?
鄹奇润博: mysql_fetch_row($sql)只能得到一维数组,不可能得到二维数组的,一次fetch只能得到查询语句的一行,通过while的循环可以得到所有查询结果,把这些结果串起来能得到二维数组,但是需要自己写程序来串.你的程序是SELECT COUNT(*)...
偃师市19430532922: mysql - fetch - assoc 返回的结果集如何返回下一行 - ?
鄹奇润博: 例子:数据库表tb的一行数据如下:field1 field2 abc def$row=mysql_fetch_assoc($res); print_r($row); 输出如下:Array( [field1] => abc [field2] => def)$row=mysql_fetch_array($res); print_r($row); 输出如下:Array( [0] => abc [field1] => abc [1] => def [field2] => def) 看到差异了没? 还有一个mysql_fetch_row,生产的结果是:Array( [0] => abc [1] => def)