php ci result_array,CI生成查询记录集result(),row(),row_array().....

result()

该方法执行成功返回一个对象数组,失败则返回一个空数组。 一般情况下,我们使用下面的方法遍历结果,代码就像这样:

$query = $this->db->query("要执行的 SQL");

foreach ($query->result() as $row)

{

echo $row->title;

echo $row->name;

echo $row->body;

}

本函数的别名是 result_object()。

如果当前所执行的 SQL 可能不会返回记录集,我们可以使用如下方法进行判断:

$query = $this->db->query("要执行的 SQL");

if ($query->num_rows() > 0)

{

foreach ($query->result() as $row)

{

echo $row->title;

echo $row->name;

echo $row->body;

}

}

你可以传递一个字符串给result()函数,该字符串代表着某个类为每一个result对象进行实例化 (注意:该类必须已经被加载)。

$query = $this->db->query("SELECT * FROM users;");

foreach ($query->result(‘User‘) as $row)

{

echo $row->name; // call attributes

echo $row->reverse_name(); // or methods defined on the ‘User‘ class

}

result_array()

该方法执行成功时将记录集作为关联数组返回。失败时返回空数组。一般情况下,我们使用下面的方法遍历结果,代码就像这样:

$query = $this->db->query("要执行的 SQL");

foreach ($query->result_array() as $row)

{

echo $row[‘title‘];

echo $row[‘name‘];

echo $row[‘body‘];

}

row()

该函数将当前请求的第一行数据作为 object 返回。这里是示例代码:

$query = $this->db->query("要执行的 SQL");

if ($query->num_rows() > 0)

{

$row = $query->row();

echo $row->title;

echo $row->name;

echo $row->body;

}

你可以传递参数(参数是行的索引)以便获得某一行的数据。比如我们要获得第 5 行的数据:

$row = $query->row(4);

如果传入的参数超出行索引,则返回第一行(索引为0)数据

你也可以添加一个字符串参数,它是一个类在row()函数下实例化的名字:

$query = $this->db->query("SELECT * FROM users LIMIT 1;");

$query->row(0, ‘User‘)

echo $row->name; // call attributes

echo $row->reverse_name(); // or methods defined on the ‘User‘ class

row_array()

功能与 row() 一样, 区别在于该函数返回的是一个数组:

$query = $this->db->query("要执行的 SQL");

if ($query->num_rows() > 0)

{

$row = $query->row_array();

echo $row[‘title‘];

echo $row[‘name‘];

echo $row[‘body‘];

}

你可以传递参数(参数是行的索引)以便获得某一行的数据。比如我们要获得第 5 行的数据:

$row = $query->row_array(4);

如果传入的参数超出行索引,则返回第一行(索引为0)数据

除此以外, 我们还可以使用下面的方法通过游标的方式获取记录:

$row = $query->first_row()

$row = $query->last_row()

$row = $query->next_row()

$row = $query->previous_row()

默认情况下他们将返回一个 object,同时你也可以传递参数 "array" 以便使用 array 的方式获取数据

$row = $query->first_row(‘array‘)

$row = $query->last_row(‘array‘)

$row = $query->next_row(‘array‘)

$row = $query->previous_row(‘array‘)

结果集辅助函数

$query->num_rows()

该函数将会返回当前请求的行数。在本例子中, $query 表示当前 SQL 所产生的请求结果对象:

$query = $this->db->query(‘SELECT * FROM my_table‘);

echo $query->num_rows();

$query->num_fields()

该函数返回当前请求的字段数(列数):

$query = $this->db->query(‘SELECT * FROM my_table‘);

echo $query->num_fields();

$query->free_result()

该函数将会释放当前查询所占用的内存并删除其关联的资源标识。通常来说,PHP 将会脚本执行结束后自动释放内存。如果当前执行的请求将要花很长时间并且占用比较大的资源时,该函数可以在一定程度上降低资源的消耗:

$query = $this->db->query(‘SELECT title FROM my_table‘);

foreach ($query->result() as $row)

{

echo $row->title;

}

$query->free_result(); // $query 将不再可用

$query2 = $this->db->query(‘SELECT name FROM some_table‘);

$row = $query2->row();

echo $row->name;

$query2->free_result(); // $query2 将不再可用

原文:http://www.cnblogs.com/lpshan/p/4527569.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
import cv2 import numpy as np import os # 提取图像的HOG特征 def get_hog_features(image): hog = cv2.HOGDescriptor() hog_features = hog.compute(image) return hog_features # 加载训练数据集 train_data = [r"I:\18Breakageratecalculation\SVM run\detection_cut\whole\train128"] train_labels = [r"I:\18Breakageratecalculation\SVM run\detection_cut\whole\train128\labels.txt"] num_samples = 681 for i in range(num_samples): img = cv2.imread(str(i).zfill(3)+'.jpg') hog_features = get_hog_features(image) hsv_image = cv2.cvtColor(image, cv2.COLOR_BGR2HSV) color_hist = cv2.calcHist([hsv_image], [0, 1], None, [180, 256], [0, 180, 0, 256]) color_features = cv2.normalize(color_hist, color_hist).flatten() train_data.append(hog_features) train_labels.append(labels[i]) # 训练SVM模型 svm = cv2.ml.SVM_create() svm.setType(cv2.ml.SVM_C_SVC) svm.setKernel(cv2.ml.SVM_LINEAR) svm.train(np.array(train_data), cv2.ml.ROW_SAMPLE, np.array(train_labels)) # 对测试图像进行分类 test_image = cv2.imread('I:\18Breakageratecalculation\mask-slic use\maskSLIC-master\result\split\result2\maskslic2_roi.png', 0) test_features = get_hog_features(test_image) result = svm.predict(test_features.reshape(1,-1)) # 显示分割结果 result_image = np.zeros(test_image.shape, np.uint8) for i in range(test_image.shape[0]): for j in range(test_image.shape[1]): if result[i,j] == 1: result_image[i,j] = 255 cv2.imshow('I:\18Breakageratecalculation\mask-slic use\maskSLIC-master\result\split\result2\Result.png', result_image) cv2.waitKey(0) cv2.destroyAllWindows()
最新发布
06-09

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值