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的check table和repair table 的sql语句,另一种方法是使用MySQL提供的多个myisamchk, isamchk数据检测恢复工具。前者使用起来比较简便。推荐使用。1. check table 和 repair table
登陆mysql 终端:
mysql -uxxxxx -p dbname
check table tabTest
如果出现的结果说Status是OK,则不用修复,如果有Error,可以用:
repair table tabTest
进行修复,修复之后可以在用check table命令来进行检查。在新版本的phpMyAdmin里面也可以使用check/repair的功能。
2. myisamchk, isamchk
其中myisamchk适用于MYISAM类型的数据表,而isamchk适用于ISAM类型的数据表。这两条命令的主要参数相同,一般新的系统都使用MYISAM作为缺省的数据表类型,这里以myisamchk为例子进行说明。当发现某个数据表出现问题时可以使用:
myisamchk tablename.MYI
进行检测,如果需要修复的话,可以使用:
myisamchk -of tablename.MYI
关于myisamchk的详细参数说明,可以参见它的使用帮助。需要注意的时在进行修改时必须确保MySQL服务器没有访问这个数据表,保险的情况下是最好在进行检测时把MySQL服务器Shutdown掉。
mysql中不能存储数组,但是可以通过传入的字符串截取成多个字符然后传入到临时表中,然后使用游标或者直接关联表过滤数据来储存。
具体步骤如下所示:
1、创建数据库,就如下图所示一样。
2、根据学生编号批量删除学生信息,如下图所示。
3、声明初始化变量,看到以下画面。
4、获取传入参数数组长度,创建临时表,所输入的如下图所示。
5、截取数组字符串并依次存入到临时表中供后面业务使用。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)