Home > Backend Development > PHP Tutorial > Getting Started with Medoo - Examples of Use

Getting Started with Medoo - Examples of Use

Christopher Nolan
Release: 2025-02-19 09:31:08
Original
272 people have browsed it
<p>This article explores Medoo, a lightweight PHP database abstraction library. Its key features include multi-database support (MySQL, MariaDB, Sybase, MS SQL, PostgreSQL, and Oracle), built-in SQL injection prevention via PDO, and an intuitive API. While not revolutionary, its simplicity and ease of use make it a compelling option.</p> <p><img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/000/000/173992867159912.jpg" class="lazy" alt="Getting Started with Medoo - Examples of Use "></p> <p><strong>Key Advantages:</strong></p> <ul> <li>Lightweight and efficient PHP database interaction.</li> <li>Supports diverse database systems.</li> <li>User-friendly API for simplified database operations.</li> <li>Secure against SQL injection vulnerabilities.</li> </ul> <p><strong>Installation (Recommended):</strong></p> <p>Use Composer for seamless installation and updates: <code>composer require catfan/medoo</code></p> <p><strong>Database Connection:</strong></p> <p>Instantiate Medoo by providing a configuration array:</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>$db = new medoo([ 'database_type' => 'mysql', 'database_name' => 'pokemon', 'server' => 'localhost', 'username' => 'ash_ketchum', 'password' => 'pikachu' ]);</pre><div class="contentsignin">Copy after login</div></div> <p>Remember to adjust the port if necessary (default is 3306).</p> <p><strong>Data Retrieval (SELECT):</strong></p> <p>Medoo's <code>select</code> method facilitates data retrieval. Arguments include the table name, optional join conditions, fields to select, and optional <code>where</code> clauses.</p> <p>Example: Selecting Kanto trainers:</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>$trainers = $db->select('trainers', ['id', 'name', 'pokemon_count', 'region'], ['region' => 'Kanto']);</pre><div class="contentsignin">Copy after login</div></div> <p>Complex conditions are easily implemented using <code>AND</code>, <code>OR</code>, and relational operators (<code>[></code>, <code>[<]</code>, <code>[>=]</code>, <code>[<=]</code>, <code>[!=]</code>, <code>[]</code>):</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>$trainers = $db->select('trainers', ['id', 'name', 'trainers_defeated', 'region'], ['AND' => ['trainers_defeated[>]' => 150, 'region' => 'Johto']]);</pre><div class="contentsignin">Copy after login</div></div> <p>The <code>get</code> method retrieves a single row:</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>$most_caught = $db->get('trainers', ['name', 'pokemon_count'], ['ORDER' => 'pokemon_count DESC']);</pre><div class="contentsignin">Copy after login</div></div> <p>Raw SQL queries are possible using <code>query</code> and <code>fetchAll(PDO::FETCH_ASSOC)</code>:</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>$trainer_count_per_region = $db->query('SELECT COUNT(name) as trainers, region FROM trainers GROUP BY region')->fetchAll(PDO::FETCH_ASSOC);</pre><div class="contentsignin">Copy after login</div></div> <p>Joins are supported using <code>[></code>, <code><</code>, <code><></code>:</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>$pokemon_types = $db->select('pokemon', ['[>'=>['type_id'=>'id']], ['pokemon.name', 'types.name(type)']);</pre><div class="contentsignin">Copy after login</div></div> <p><strong>Data Manipulation:</strong></p> <ul> <li> <p><strong>INSERT:</strong> The <code>insert</code> method adds new records. It supports single and multiple inserts.</p> </li> <li> <p><strong>UPDATE:</strong> The <code>update</code> method modifies existing records. It allows for simple updates and mathematical operations (<code>[ ]</code>, <code>[-]</code>, <code>[*]</code>, <code>[/]</code>).</p> </li> <li> <p><strong>DELETE:</strong> The <code>delete</code> method removes records based on specified conditions.</p> </li> </ul> <p><strong>Aggregate Functions:</strong></p> <p>Medoo provides <code>count</code>, <code>max</code>, <code>min</code>, <code>avg</code>, and <code>sum</code> for aggregate operations. Conditions can be added as a final argument.</p> <p><strong>Debugging:</strong></p> <p>Use <code>error()</code> to check for errors and <code>last_query()</code> to examine the last executed SQL statement.</p> <p><strong>Conclusion:</strong></p> <p>Medoo offers a streamlined approach to PHP database interaction, balancing simplicity with functionality. Its lightweight nature and straightforward API make it an attractive choice for many projects. Further details are available in the official Medoo documentation.</p>

The above is the detailed content of Getting Started with Medoo - Examples of Use. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template