php WPDB抽象

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php WPDB抽象相关的知识,希望对你有一定的参考价值。

<?php
use Exception;

/**
 * Class Connection
 *
 * Adds a layer of abstraction over WP's $wpdb global for
 * DB operations
 *
 * @package Manager\WPDatabase
 */
class Connection {

	/**
	 * @var \wpdb - WP instance of DB
	 */
	private $wpdb;

	/**
	 * Connection constructor.
	 * Accepts $wpdb global
	 *
	 * @param \wpdb $database
	 * @throws Exception
	 */
	public function __construct(\wpdb $database) {
		try {
			$connected = $database->check_connection();

			if ($connected) {
				$this->wpdb = $database;
			}
		} catch(\Throwable $e) {
			echo $e->getMessage();
		}
	}

	/**
	 * Filter SQL through WPDB prepare method
	 *
	 * @param string $sql
	 * @param array $args
	 *
	 * @return string|void
	 */
	public function prepare(string $sql, array $args) {
		return $this->wpdb->prepare($sql, $args);
	}

	/**
	 * Queries WP DB
	 *
	 * @param string $sql
	 * @throws Exception
	 */
	public function query(string $sql) {
		try {
			$this->wpdb->query($sql);
		} catch (Exception $e) {
			echo $e->getMessage();
		}
	}

	/**
	 * Returns result of WPDB query, as an associative array
	 *
	 * @param string $sql
	 *
	 * @return array|bool|null|object
	 */
	public function getResults(string $sql) {
		$result = false;

		try {
			$result = $this->wpdb->get_results($sql, ARRAY_A);
		} catch (Exception $e) {
			echo $e->getMessage();
		}

		return $result;
	}
}

以上是关于php WPDB抽象的主要内容,如果未能解决你的问题,请参考以下文章

php WordPress:使用$ wpdb进行分页

将 wpdb sql 数组转换为 php 数组

wordpress仅包含wpdb(wpdb for ajax)

php facetwp facetwp_wpdb_sql过滤器

Wordpress 全局 $wpdb 函数问题

$wpdb->update 或 $wpdb->insert 导致在引号前添加斜杠