Công cụ thành viên

Công cụ trang web


mysql_nv4

Khác biệt

Đây là những khác biệt giữa hai phiên bản của trang.

Liên kết đến bản xem so sánh này

Phiên bản trước của cả hai bênPhiên bản trước
Phiên bản sau
Phiên bản trước
Phiên bản cuốiPhiên bản sau của cả hai bên
mysql_nv4 [2021/04/21 11:16] – [II. Fetch dữ liệu] hoaquynhtim99mysql_nv4 [2021/04/21 11:27] – [Truy vấn 1 trường csdl lấy 1 record duy nhất] hoaquynhtim99
Dòng 29: Dòng 29:
 } }
 </code> </code>
- 
  
 - Exec: sử dụng trong các trường hợp câu truy vấn không có biến truyền vào, hoặc các biến chắc chắn không gây ra Sql Injection, giá trị trả về là số dòng thực hiện. - Exec: sử dụng trong các trường hợp câu truy vấn không có biến truyền vào, hoặc các biến chắc chắn không gây ra Sql Injection, giá trị trả về là số dòng thực hiện.
-$count = $db->exec( "DELETE FROM nv3_config WHERE module = 'khongco'" );+ 
 +<code php> 
 +$count = $db->exec("DELETE FROM nv3_config WHERE module = 'khongco'");
 print("Deleted $count rows"); print("Deleted $count rows");
-Ngoài ra, còn có một cách tiếp cận khác nữa là sử dụng bindParam, phương thức này sử dụng trong trường hợp nếu có biến truyền vào câu truy vấn.+</code> 
 + 
 +Ngoài ra, còn có một cách tiếp cận khác nữa là sử dụng ''bindParam'', phương thức này sử dụng trong trường hợp nếu có biến truyền vào câu truy vấn.
  
 <code php > <code php >
Dòng 56: Dòng 59:
  
 Cũng như cách dùng của API mysql, dữ liệu khi được lấy ra từ cơ sở dữ liệu cần phải được “đổ” (fetch) vào một array, object hoặc một class thì mới sử dụng được. PDO cũng cung cấp một số kiểu fetch cơ bản như sau: Cũng như cách dùng của API mysql, dữ liệu khi được lấy ra từ cơ sở dữ liệu cần phải được “đổ” (fetch) vào một array, object hoặc một class thì mới sử dụng được. PDO cũng cung cấp một số kiểu fetch cơ bản như sau:
-PDO::FETCH_ASSOC: Trả về dạng mảng (array) + 
-PDO::FETCH_BOTH: Trả về một mảng, key giữa tên cột và giá trị index bắt đầu từ 0 +  * ''PDO::FETCH_ASSOC'': Trả về dạng mảng (array) 
-PDO::FETCH_BOUND: Trả về TRUE và gán các giá trị của các cột trong kết quả tương ứng vào các biến bạn đã thiết lập cho nó. +  * ''PDO::FETCH_BOTH'': Trả về một mảng, key giữa tên cột và giá trị index bắt đầu từ 0 
-PDO::FETCH_CLASS: Trả lại một lớp (class) +  * ''PDO::FETCH_BOUND'': Trả về TRUE và gán các giá trị của các cột trong kết quả tương ứng vào các biến bạn đã thiết lập cho nó. 
-PDO::FETCH_OBJ: Trả về một đối tượng vô danh với tên tương ứng với các cột +  * ''PDO::FETCH_CLASS'': Trả lại một lớp (class) 
-PDO::FETCH_NUM: (Là số 3 ) Trả về một mảng, giá trị index bắt đầu từ 0 +  * ''PDO::FETCH_OBJ'': Trả về một đối tượng vô danh với tên tương ứng với các cột 
-Mặc định, NukeViet sử dụng PDO::FETCH_ASSOC.+  * ''PDO::FETCH_NUM'': (Là số 3 ) Trả về một mảng, giá trị index bắt đầu từ 0 
 + 
 +Mặc định, NukeViet sử dụng ''PDO::FETCH_ASSOC''. 
 + 
 +<code php>
 $sql = 'SELECT * FROM ' . NV_PREFIXLANG . '_' . $module_data . ' WHERE status=1 AND id=' . $id; $sql = 'SELECT * FROM ' . NV_PREFIXLANG . '_' . $module_data . ' WHERE status=1 AND id=' . $id;
-$row = $db->query( $sql )->fetch(); +$row = $db->query($sql)->fetch(); 
-Mặc định, NukeViet sử dụng PDO::FETCH_ASSOC.+</code>
  
 ===== IV. Thao tác dữ liệu ===== ===== IV. Thao tác dữ liệu =====
Dòng 103: Dòng 110:
    
 <code php > <code php >
- 
 $stmt = $db->prepare('INSERT INTO ' . NV_PREFIXLANG . '_' . $module_data . ' VALUES(:name)'); $stmt = $db->prepare('INSERT INTO ' . NV_PREFIXLANG . '_' . $module_data . ' VALUES(:name)');
 $stmt->bindParam(':name', $name); $stmt->bindParam(':name', $name);
Dòng 113: Dòng 119:
 $name = 'Steven'; $name = 'Steven';
 $stmt->execute(); $stmt->execute();
- 
  
 // Max Weight // Max Weight
 $_sql = 'SELECT max(weight) FROM ' . NV_PREFIXLANG . '_' . $module_data . ' WHERE catid=' . $catid; $_sql = 'SELECT max(weight) FROM ' . NV_PREFIXLANG . '_' . $module_data . ' WHERE catid=' . $catid;
-$weight = $db->query( $_sql )->fetchColumn(); +$weight = $db->query($_sql)->fetchColumn(); 
-$weight = intval( $weight ) + 1;+$weight = intval($weight) + 1;
 // Fetch Limit // Fetch Limit
 $db->sqlreset() $db->sqlreset()
-  ->select( 'COUNT(*)'+    ->select('COUNT(*)'
-  ->from( NV_PREFIXLANG . '_' . $module_data ) +    ->from(NV_PREFIXLANG . '_' . $module_data) 
-  ->where( 'status=1' ); +    ->where('status=1'); 
-$all_page = $db->query( $db->sql() )->fetchColumn(); +$all_page = $db->query($db->sql()) 
-$db->select( '*'+    ->fetchColumn(); 
-  ->order( 'id DESC' ) +$db->select('*'
-  ->limit( $per_page ) +    ->order('id DESC'
-  ->offset( $page ); +    ->limit($per_page) 
-while( $row = $_query->fetch() ) +    ->offset($page); 
-+while ($row = $_query->fetch()) { 
-    //$id = $row['id'];+    // $id = $row['id'];
 } }
- 
 </code> </code>
  
Dòng 225: Dòng 229:
  
 $db->sqlreset() $db->sqlreset()
-->select( 'COUNT(*)'+    ->select('COUNT(*)'
-->from( NV_PREFIXLANG . '_' . $module_data . '_rows'+    ->from(NV_PREFIXLANG . '_' . $module_data . '_rows'
-->where( 'status= 1 AND inhome=1' ); +    ->where('status= 1 AND inhome=1'); 
-$all_page = $db->query( $db->sql() )->fetchColumn(); +$all_page = $db->query($db->sql()) 
-$db->select( 'id, catid, listcatid, topicid, admin_id, author, sourceid, addtime, edittime, publtime, title, alias, hometext, homeimgfile, homeimgalt, homeimgthumb, allowed_rating, hitstotal, hitscm, total_rating, click_rating'+    ->fetchColumn(); 
-->order(  'id DESC' ) +$db->select('id, catid, listcatid, topicid, admin_id, author, sourceid, addtime, edittime, publtime, title, alias, hometext, homeimgfile, homeimgalt, homeimgthumb, allowed_rating, hitstotal, hitscm, total_rating, click_rating'
-->limit( $per_page ) +    ->order('id DESC'
-->offset( page ); +    ->limit($per_page) 
-$result = $db->query( $db->sql() );+    ->offset(page); 
 +$result = $db->query($db->sql());
  
 </code> </code>
Dòng 254: Dòng 259:
 <code php > <code php >
  
-$result = $db->query( "SELECT * FROM " . $db_config['prefix'] . "_" . $lang_data . "_modules where title='news'" ); +$result = $db->query("SELECT * FROM " . $db_config['prefix'] . "_" . $lang_data . "_modules where title='news'"); 
-if( $result->rowCount() ) +if ($result->rowCount()) { 
-+    //
-//+
 } }
  
-<cpde>+</code>
  
 Cần viết thành Cần viết thành
Dòng 266: Dòng 270:
 <code php > <code php >
  
-$result = $db->query( "SELECT COUNT(*) FROM " . $db_config['prefix'] . "_" . $lang_data . "_modules where title='news'" ); +$result = $db->query("SELECT COUNT(*) FROM " . $db_config['prefix'] . "_" . $lang_data . "_modules where title='news'"); 
-if( $result->fetchColumn() ) +if ($result->fetchColumn()) {
-{+
     //     //
 } }
Dòng 283: Dòng 286:
 <code php > <code php >
  
-$sth = $db->prepare( 'UPDATE nv3_vi_news_bodyhtml SET bodyhtml = :bodyhtml WHERE id=4' );+$sth = $db->prepare('UPDATE nv3_vi_news_bodyhtml SET bodyhtml = :bodyhtml WHERE id=4');
 $len = strlen($bodyhtml); $len = strlen($bodyhtml);
-$sth->bindParam( ':bodyhtml', $bodyhtml, PDO::PARAM_STR, $len );+$sth->bindParam(':bodyhtml', $bodyhtml, PDO::PARAM_STR, $len);
 $sth->execute(); $sth->execute();
  
Dòng 295: Dòng 298:
 <code php> <code php>
  
-<?php +$stmt = $db->prepare('INSERT INTO ' . $db_config['prefix'] . '_' . $module_data . ' SET
-   $stmt = $db->prepare( 'INSERT INTO ' . $db_config['prefix'] . '_' . $module_data . ' SET +
       send_to = :send_to,       send_to = :send_to,
-      subject = :subject,  +      subject = :subject, 
-      message = :message,  +      message = :message, 
-      status = ' . intval( $data['status'] ) . ',  +      status = ' . intval($data['status']) . ', 
-      finish = ' . intval( $data['finish'] ) . '' ); +      finish = ' . intval($data['finish']) . '');
-          +
-        +
-   $stmt->bindParam( ':send_to', $data['send_to'], PDO::PARAM_STR ); +
-   $stmt->bindParam( ':subject', $data['subject'], PDO::PARAM_STR ); +
-   $stmt->bindParam( ':message', $data['message'], PDO::PARAM_STR, strlen( $data['message'] ) ); +
-   $stmt->execute(); +
-   $stmt->closeCursor();+
  
-   if( $data['newsletter_id'] = $db->lastInsertId() ) +$stmt->bindParam(':send_to', $data['send_to'], PDO::PARAM_STR); 
-   {+$stmt->bindParam(':subject', $data['subject'], PDO::PARAM_STR); 
 +$stmt->bindParam(':message', $data['message'], PDO::PARAM_STR, strlen($data['message'])); 
 +$stmt->execute(); 
 +$stmt->closeCursor(); 
 + 
 +if ($data['newsletter_id'] = $db->lastInsertId()) { 
 +}
  
-    
-   } 
-?> 
  
 </code> </code>
Dòng 323: Dòng 321:
 <code php> <code php>
  
-<?php +$stmt = $db->prepare('UPDATE ' . $db_config['prefix'] . '_' . $module_data . ' SET 
- +      subject = :subject,
-   $stmt = $db->prepare( 'UPDATE ' . $db_config['prefix'] . '_' . $module_data . ' SET  +
-      subject = :subject, +
       send_to = :send_to,       send_to = :send_to,
-      message = :message,  +      message = :message, 
-      status = ' . intval( $data['status'] ) . ',  +      status = ' . intval($data['status']) . ', 
-   WHERE newsletter_id=' . $data['newsletter_id'] );+   WHERE newsletter_id=' . $data['newsletter_id']);
  
-   $stmt->bindParam( ':subject', $data['subject'], PDO::PARAM_STR ); +$stmt->bindParam(':subject', $data['subject'], PDO::PARAM_STR); 
-   $stmt->bindParam( ':send_to', $data['send_to'], PDO::PARAM_STR ); +$stmt->bindParam(':send_to', $data['send_to'], PDO::PARAM_STR); 
-   $stmt->bindParam( ':message', $data['message'], PDO::PARAM_STR, strlen( $data['message'] ) ); +$stmt->bindParam(':message', $data['message'], PDO::PARAM_STR, strlen($data['message'])); 
-   if( $stmt->execute() ) +if ($stmt->execute()) { 
-   +
-          +$stmt->closeCursor();
-   +
-   $stmt->closeCursor(); +
-?>+
  
 </code> </code>
Dòng 350: Dòng 343:
 <code php> <code php>
  
-<?php+// Sử dụng mysqli 
 +$db->query('DELETE FROM ' . $db_config['prefix'] . '_' . $module_data . ' WHERE newsletter_id=' . intval($data['newsletter_id']));
  
-   //Sử dụng mysqli +// Sử dụng PDO theo phương thức bindParam đối với string send_to 
-   $db->query( 'DELETE FROM ' . $db_config['prefix'] . '_' . $module_data . ' WHERE newsletter_id=' . intval( $data['newsletter_id'] ) ); +$stmt = $db->prepare('DELETE FROM ' . $db_config['prefix'] . '_' . $module_data . ' WHERE send_to=: send_to, newsletter_id=' . intval($data['newsletter_id'])); 
-    +$stmt->bindParam(':send_to', $data['send_to'], PDO::PARAM_STR); 
-   // Sử dụng PDO theo phương thức bindParam đối với string send_to +$stmt->execute() 
-   $stmt = $db->prepare( 'DELETE FROM ' . $db_config['prefix'] . '_' . $module_data . ' WHERE send_to=: send_to, newsletter_id=' . intval( $data['newsletter_id'] ) ); +$stmt->closeCursor();
-   $stmt->bindParam( ':send_to', $data['send_to'], PDO::PARAM_STR ); +
-   $stmt->execute() +
-   $stmt->closeCursor(); +
-    +
-   // Sử dụng PDO theo phương thức  $db->quote đối với string send_to +
-   $stmt = $db->prepare( 'DELETE FROM ' . $db_config['prefix'] . '_' . $module_data . ' WHERE send_to= ' . $db->quote( $data['send_to'] ) . ', newsletter_id=' . intval( $data['newsletter_id'] ) ); +
-   $stmt->bindParam( ':send_to', $data['send_to'], PDO::PARAM_STR ); +
-   $stmt->execute() +
-   $stmt->closeCursor(); +
-   +
  
-?>+// Sử dụng PDO theo phương thức $db->quote đối với string send_to 
 +$stmt = $db->prepare('DELETE FROM ' . $db_config['prefix'] . '_' . $module_data . ' WHERE send_to= ' . $db->quote($data['send_to']) . ', newsletter_id=' . intval($data['newsletter_id'])); 
 +$stmt->bindParam(':send_to', $data['send_to'], PDO::PARAM_STR); 
 +$stmt->execute() 
 +$stmt->closeCursor();
  
 </code> </code>
Dòng 377: Dòng 365:
 <code php> <code php>
  
-<?php+$per_page = 30;
  
-   $per_page = 30; +$page = $nv_Request->get_int('page', 'get', 1);
-    +
-   $page = $nv_Request->get_int( 'page', 'get', 1 );+
  
-   $sql = $db_config['prefix'] . '_' . $module_data+$sql = $db_config['prefix'] . '_' . $module_data;
-    +
-   $num_items = $db->query( 'SELECT COUNT(*) FROM ' . $sql )->fetchColumn(); +
-    +
-   $base_url = NV_BASE_ADMINURL . 'index.php?' . NV_NAME_VARIABLE . '=' . $module_name . '&amp;' . NV_OP_VARIABLE . '=main&amp;per_page=' . $per_page; +
-    +
-   $generate_page = nv_generate_page( $base_url, $num_items, $per_page, $page ); +
-    +
-   $db->sqlreset()->select( '*' )->from( $sql )->order( 'weight ASC' )->limit( $per_page )->offset( ( $page - 1 ) * $per_page );+
  
-   $result = $db->query( $db->sql();+$num_items = $db->query('SELECT COUNT(*) FROM ' . $sql)->fetchColumn();
  
-   $array_content = array(); +$base_url = NV_BASE_ADMINURL . 'index.php?' . NV_NAME_VARIABLE . '=' . $module_name . '&amp;' . NV_OP_VARIABLE . '=main&amp;per_page=' . $per_page; 
-    + 
-   while( $rows = $result->fetch() ) +$generate_page = nv_generate_page($base_url, $num_items, $per_page, $page); 
-   + 
-      $array_content[] = $rows; +$db->sqlreset() 
-   } +    ->select('*'
-    +    ->from($sql) 
-?>+    ->order('weight ASC'
 +    ->limit($per_page) 
 +    ->offset(($page - 1) * $per_page); 
 + 
 +$result = $db->query($db->sql()); 
 + 
 +$array_content = array(); 
 + 
 +while ($rows = $result->fetch()) { 
 +    $array_content[] = $rows; 
 +}
  
 </code> </code>
Dòng 413: Dòng 401:
 <code php> <code php>
  
-<?php+$sql = 'SELECT newsletter_id, send_to FROM ' . $db_config['prefix'] . '_' . $module_data . ' WHERE newsletter_id = 1 ORDER BY newsletter_id ASC LIMIT 0, 20';
  
-   $sql='SELECT newsletter_id, send_to FROM ' . $db_config['prefix'] . '_'$module_data .' WHERE newsletter_id = 1 ORDER BY newsletter_id ASC LIMIT 0, 20';+$result = $db->query($sql);
  
-   $result $db->query$sql );+$array_content array();
  
-   $array_content = array(); +while (list ($newsletter_id, $send_to) = $result->fetch(3)) { 
-    +    $array_content[] = array( 
-   while( list( $newsletter_id, $send_to ) = $result->fetch(3) ) +        'newsletter_id' => $newsletter_id, 
-   +        'send_to' => $send_to 
-      $array_content[] = array( 'newsletter_id'=> $newsletter_id, 'send_to'=> $send_to  ); +    ); 
-   +
-   $result->closeCursor(); +$result->closeCursor();
-?>+
  
 </code> </code>
Dòng 434: Dòng 421:
 <code php> <code php>
  
-<?php+$sql = 'SELECT newsletter_id, send_to FROM ' . $db_config['prefix'] . '_' . $module_data . ' WHERE newsletter_id = 1 ORDER BY newsletter_id ASC LIMIT 0, 20';
  
-   $sql='SELECT newsletter_id, send_to FROM ' . $db_config['prefix'] . '_'$module_data .' WHERE newsletter_id = 1 ORDER BY newsletter_id ASC LIMIT 0, 20';+$result = $db->query($sql);
  
-   $result $db->query$sql );+$array_content array();
  
-   $array_content = array(); +while ($rows = $result->fetch()) { 
-    +    $array_content[] = $rows; 
-   while( $rows = $result->fetch() ) +
-   +$result->closeCursor();
-      $array_content[] = $rows; +
-   +
-   $result->closeCursor(); +
-?>+
  
 </code> </code>
Dòng 455: Dòng 438:
 <code php> <code php>
  
-<?php+$sql = 'SELECT newsletter_id, send_to FROM ' . $db_config['prefix'] . '_' . $module_data . ' WHERE newsletter_id = 1 ORDER BY newsletter_id ASC LIMIT 0, 1';
  
-   $sql='SELECT newsletter_id, send_to FROM ' . $db_config['prefix'] . '_'$module_data .' WHERE newsletter_id = 1 ORDER BY newsletter_id ASC LIMIT 0, 1';+$result = $db->query($sql);
  
-   $result = $db->query( $sql ); +list ($newsletter_id, $send_to) = $result->fetch(3); 
-    + 
-   list( $newsletter_id, $send_to ) = $result->fetch(3); +$result->closeCursor();
-    +
-   $result->closeCursor(); +
-?>+
  
 </code> </code>
Dòng 472: Dòng 452:
 <code php> <code php>
  
-<?php +$result = $db->query('SELECT COUNT(*) FROM ' . $db_config['prefix'] . '_' . $module_data); 
-  + 
-   $result = $db->query( 'SELECT COUNT(*) FROM ' . $db_config['prefix'] . '_' . $module_data ); +list ($total) = $result->fetch(3); 
-    + 
-   list( $total ) = $result->fetch(3); +$result->closeCursor();
-    +
-   $result->closeCursor(); +
-?>+
  
 </code> </code>
mysql_nv4.txt · Sửa đổi lần cuối: 2021/04/21 11:28 bởi hoaquynhtim99