Tos Web Developer provides insights, tutorials, and advice around topics including content strategy, design, Drupal Development, Drupal Custom Module Development, Drupal 8 Custom themes, PHP, Server, Twig, and more

                                   


 
Drupal's database API provides abstraction using PDO to provide support for multiple types of database servers and allows for secure query assembly.

 <?php  

 // Get single value:  
 $query = \Drupal::database()->select('node_field_data', 'nfd');  
 $query->addField('nfd', 'nid');  
 $query->condition('nfd.title', 'Potato');  
 $query->range(0, 1);  
 $nid = $query->execute()->fetchField();  

 // Get single row:  

 $query = \Drupal::database()->select('node_field_data', 'nfd');  
 $query->fields('nfd', ['nid', 'title']);  
 $query->condition('nfd.type', 'vegetable');  
 $query->range(0, 1);  
 $vegetable = $query->execute()->fetchAssoc();  

 // Using db like:  

 $query = \Drupal::database()->select('node_field_data', 'nfd');  
 $query->fields('nfd', ['nid', 'title']);  
 $query->condition('nfd.type', 'vegetable');  
 $query->condition('nfd.title', $query->escapeLike('ca') . '%', 'LIKE');  
 $vegetable = $query->execute()->fetchAllKeyed();  

 // Get several rows with JOIN:  

 $query = \Drupal::database()->select('node_field_data', 'nfd');  
 $query->fields('nfd', ['nid', 'title']);  
 $query->addField('ufd', 'name');  
 $query->join('users_field_data', 'ufd', 'ufd.uid = nfd.uid');  
 $query->condition('nfd.type', 'vegetable');  
 $vegetable = $query->execute()->fetchAllAssoc('nid');  

 // Insert row into database.  

 $query = \Drupal::database()->insert('flood');  
 $query->fields([  
  'event',  
  'identifier'  
 ]);  
 $query->values([  
  'My event',  
  'My indentifier'  
 ]);  
 $query->execute();  

 // Update row in database.  

 $query = \Drupal::database()->update('flood');  
 $query->fields([  
  'identifier' => 'My new identifier'  
 ]);  
 $query->condition('event', 'My event');  
 $query->execute();  

 // Upsert (Update or insert if not exists)  

 $query = \Drupal::database()->upsert('flood');  
 $query->fields([  
  'fid',  
  'identifier',  
 ]);  
 $query->values([  
  1,  
  'My indentifier for upsert'  
 ]);  
 $query->key('fid');  
 $query->execute();  

 // Delete  

 $query = \Drupal::database()->delete('flood');  
 $query->condition('event', 'My event');  
 $query->execute();  
 ?>  

No comments:

Post a Comment

| Designed And Blog Post by www.toswebdeveloper.com