(tiếp theo)
6. Kết quả truy vấn
khi bạn thực hiện một query , thông qua từng câu lệnh mà sẽ có kết quả trả về khác nhau sau khi thực hiện lệnh execute() . Xem từng loại để xử lý kết quả cho chính xác
6.1 Select
DB::select sẽ trả ra một đối tượng kiểu Database_Result mà chúng ta có thể tương tác dễ dàng .Xem một số ví dụ sau.
Câu lệnh
$results = DB::select()->from('users')->where('verified', '=', 0)->execute();
xử lý kết quả theo từng thành phần
foreach($results as $user)
{
// Send reminder email to $user['email']
echo $user['email']." needs to verify his/her account\n";
}
6.1.1 Select - as_object() và as_assoc() (thông qua đối tượng hoặc kết hợp )
phương thức as_object() sẽ như một tham số để chuyển ra đối tượng ,tên của class sẽ tương ứng như bạn chọn ,sẽ có giá trị TRUE khi sử dụng stdClass.
xem ví dụ
$results = DB::select()->from('users')->where('verified', '=', 0)->as_object()->execute();
foreach($results as $user)
{
// Send reminder email to $user->email
echo $user->email." needs to verify his/her account\n";
}
phương thức as_assoc() sẽ xóa tên đối tượng và trả kết quả dạng mảng. Tuy nhiên pohuong7 thức này ít sử dụng
6.1.2 Select - as_array()
dạng này xuất ra dạng mảng. Xem ví dụ
$results = DB::select('id', 'email')->from('users')->execute();
$users = $results->as_array();
foreach($users as $user)
{
echo 'User ID: '.$user['id'];
echo 'User Email: '.$user['email'];
}
Nó cũng chấp nhận 2 tham số là $key và $value. khi chuyển kết quả ra
$key có thể chuyển theo chỉ mục của phần tử .
$results = DB::select('id', 'email')->from('users')->execute();
$users = $results->as_array('id');
foreach($users as $id => $user)
{
echo 'User ID: '.$id;
echo 'User Email: '.$user['email'];
}
còn đây là dùng thông qua $value, sẽ chọn cột tương ứng
$results = DB::select('id', 'name')->from('users')->execute();
$users = $results->as_array('id','name');
// sẽ chuyển ra list box của form
echo Form::select('author', $users)
To return a non-associative array, leave $key as NULL and just pass a $value.
?
$results = DB::select('email')->from('users')->execute();
$users = $results->as_array(NULL, 'email');
foreach($users as $email)
{
echo 'User Email: '.$email;
}
6.1.3 Select - get()
Thỉnh thoảng bạn muốn lấy 1 giá trị đơn. phương thức get() trả về giá trị của cột từ dòng hiện tại. Tham số thứ 2 $default được sử dụng để cung cấp giá trị mặc định khi kết quả là NULL
?
$total_users = DB::select(array('COUNT("username")', 'total_users'))->from('users')->execute()->get('total_users', 0);
6.1.4 Select - cached()
??????????????
6.1.5 Select - count()
phương thức count() trả ra tổng số dòng của kết quả .
Nên dùng limit để hạn chế chính xác
6.2 Insert
DB::insert trả ra mảng với 2 giá trị :ID insert cuối cùng và số dòng đã tác động
$insert = DB::insert('tools')
->columns(array('name', 'model', 'description'))
->values(array('Skil 3400 10" Table Saw', '3400', 'Powerful 15 amp motor; weighs just 54-pounds'));
list($insert_id, $affected_rows) = $insert->execute();
6.3 Update & Delete
DB::update và DB::delete trả ra số dòng thực hiện
$rows_deleted = DB::delete('tools')->where('model', 'like', '3400')->execute();