Heim  >  Artikel  >  Backend-Entwicklung  >  Funktionen, die für WordPress-Datenbankoperationen verwendet werden.

Funktionen, die für WordPress-Datenbankoperationen verwendet werden.

WBOY
WBOYOriginal
2016-08-08 09:23:321133Durchsuche



Wenn Sie bei Verwendung von WordPress die in WP gekapselte Datenbankoperationsklasse (wp-db.php) direkt verwenden möchten, fügen Sie einfach wp-blog-header.php in den verwendeten Code ein.

define(‘PATH’, dirname(dirname(__FILE__)).‘/’);  
require_once(PATH . ‘../wp-blog-header.php’);  
global $wpdb; 

Beim Einfügen von Daten besteht eine der Methoden darin, die Funktion insert() in der Klasse wp-db zu verwenden.

$table = "test_table";
$data_array = array(
‘column_1′ => ‘data1′,
‘column_2′ => ‘data2′
);
$wpdb->insert($table,$data_array);

Der erste Parameter ist der Name in der Datenbanktabelle und der zweite Parameter sind die einzufügenden Daten, bei denen es sich um ein Array handelt. Der Name des Schlüssels im Array ist der Spaltenname in der Tabelle. Tatsächlich verfügt die Funktion insert() auch über ein drittes Parameterformat. Interessierte Freunde können in der Methodendefinition von wp-db.php sehen, dass Sie beim Aktualisieren von Daten die Funktion update() verwenden können, zum Beispiel:

$table = "test_table";
$data_array = array(
 ‘column_1′ => ‘new_data1′
);
$where_clause = array(
‘column_2′ => ‘data2′
);
$wpdb->update($table,$data_array,$where_clause);

Es gibt viele Möglichkeiten, Daten aus der Datenbank abzurufen. Eine davon ist die folgende:

$querystr = "SELECT column_1 FROM test_table";
$results = $wpdb->get_results($querystr);
$i=0;
while ($i< count($results)){
echo $results[$i]->column_1."<br />";
$i++;
}

PHP-Syntax abfragen

<strong><?php $wpdb->query("DELETE FROM $wpdb->post WHERE post_id = ’13′ “); ?> </strong>

Der Parameter von Abfrage ist eine beliebige MySQL-Anweisung. Der Rückgabewert gibt an, wie viele Zeilen ausgewählt und betroffen waren. Gibt FALSE zurück, wenn ein Fehler auftritt.

Wählen Sie eine Variable aus

<strong><?php $wpdb->get_var('query',column_offset,row_offset); ?> </strong>


wobei Abfrage die abzufragende MySQL-Anweisung ist. Wenn sie leer ist, bedeutet dies, dass sie aus dem Cache ausgewählt wird. Column_Offset und Row_offet geben die Spalte und Zeile des Abfragerückgabewerts an, und der Standardwert ist Null. Typische Verwendung ist:

<?php $user_count = $wpdb->get_var($wpdb->prepare("SELECT COUNT(*) FROM $wpdb->users;"));?>

Diese SQL wählt nur einen Wert aus, und der Standardwert ist 0 Zeilen und 0 Spalten, was bedeutet, dass die Anzahl der Benutzer ausgewählt wird. Es ist unklar, warum „prepare“ hier immer vorangestellt wird.

Wählen Sie eine Zeile aus

<strong><?php $wpdb->get_row('query', output_type, row_offset); ?> </strong>

Abfrage ist die auszuführende MySQL-Anweisung. Ausgabetyp gibt an, ob der Rückgabewert ein Objekt, ein Hash oder ein Array ist. Zeilenoffset gibt die Zeile an .

Standardmäßig ist „Ausgabetyp“ „Objekt“.

$mylink = $wpdb->get_row("SELECT * FROM $wpdb->links WHERE link_id = 10");
echo $mylink->link_id; // gibt „10“ aus

Wenn Output_type=ARRAY_A, dann:

$mylink = $wpdb->get_row("SELECT * FROM $wpdb->links WHERE link_id = 10", ARRAY_A);
echo $mylink['link_id']; // prints "10"

Wählen Sie eine Spalte aus

get_col('query',column_offset); ? >

Allgemein auswählen

//$wpdb->get_results('query', output_type);

<?php
$fivesdrafts = $wpdb->get_results("SELECT ID, post_title FROM $wpdb->posts
WHERE post_status = 'draft' AND post_author = 5");

foreach ($fivesdrafts as $fivesdraft) {
echo $fivesdraft->post_title;
}

Zeile einfügen

<strong>//<?php $wpdb->insert( $table, $data, $format ); ?>
<?php $wpdb->insert('table', array('column1' => 'value1', 'column2' => 123 ), array('%s','%d') ) ?></strong>


Aktualisieren

//$wpdb->update( $table, $data, $where, $format = null, $where_format = null );
<?php $wpdb->update( 'table', array( 'column1' => 'value1', 'column2' => 'value2' ), array( 'ID' => 1 ), array( '%s', '%d' ), array( '%d' ) ) ?>

Über wpdb Prepare
Wie bereits erwähnt, ist nicht klar, warum jede MySQL-Anweisung in Prepare enthalten ist. Hier ist eine Erklärung: Da die MySQL-Anweisung beim Senden Zeichen wie einfache Anführungszeichen und doppelte Anführungszeichen enthalten kann Direkt ohne Verarbeitung in MySQL kann es zu Fehlern kommen. Hier verwenden wir also eine Vorbereitung, um die MySQL-Anweisung vorzuverarbeiten. Die Syntax von Prepare lautet:

$sql = $wpdb->prepare( 'query' [, value_parameter, value_parameter ... ] );

Die Abfrage kann %d, %S und %f enthalten, die jeweils angeben, dass der Typ der folgenden Parameter eine Ganzzahl ist , Zeichen und Gleitkomma, wenn Sie das %-Zeichen anzeigen möchten, verwenden Sie %%. Die Syntax ist im Grunde die gleiche wie printf in der C-Sprache.
Das ist im Grunde alles. Bei der Verarbeitung allgemeiner Datenbanken sollte es keine Probleme geben. Wenn Sie auf Probleme stoßen, können Sie dies in dem am Anfang dieses Artikels erwähnten Artikel nachlesen.

$wpdb ist eine globale Variable, die mehrere Datenbankabfragefunktionen enthält:

$wpdb -> get_results('query');
$wpdb->query('query');
$wpdb->get_var('query',column_offset,row_offset);
$wpdb->get_row('query', output_type, row_offset);
$wpdb->get_col('query',column_offset);
$wpdb->get_results('query', output_type);
$wpdb->insert( $table, $data, $format );
$wpdb->update( $table, $data, $where, $format = null, $where_format = null );
$wpdb->prepare( 'query' [, value_parameter, value_parameter ... ] );
$wpdb->show_errors();
$wpdb->hide_errors();
$wpdb->print_error();
$wpdb->get_col_info('type', offset);
$wpdb->flush(); 

Mehr: http://codex.org/zh -cn:Class_Reference/wpdb




Das Obige stellt die Funktionen vor, die in WordPress-Datenbankoperationen verwendet werden. Ich hoffe, dass es Freunden, die sich für PHP-Tutorials interessieren, hilfreich sein wird, einschließlich relevanter Inhalte.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn