Holen Sie Data_type aus der MySQL-Tabelle

Lesezeit: 4 Minuten

Benutzer-Avatar
Mamunur Rashid

Ich verwende diesen Code:

select data_type from information_schema.columns where table_name="$tableName" and column_name="$column_name"

Aber danach echoes kehrt zurück 1. Aber wenn ich es in phpmyadmin sql ausführe, kehrt es zurück data_type der Säule.

Ich will data_type der MySQL-Tabellenspalte (ich verwende WordPress).

  • zeige dein echo zugehöriges Code-Snippet

    – 1000111

    9. August 2016 um 7:28 Uhr

  • Ich habe das alles versucht > $vv = mysql_query($query); $x = mysql_field_type ( $vv , 0); echo $x; var_dump($x);

    – Mamunur Rashid

    9. August 2016 um 7:29 Uhr


  • $query = “Datentyp aus information_schema.columns auswählen, wobei Tabellenname = ‘$Tabellenname’ und Spaltenname = ‘$Spaltenname’ “; $vv = $wpdb->query($query); $x = mysql_fetch_field ( $query ); echo $x; var_dump($x);

    – Mamunur Rashid

    9. August 2016 um 7:32 Uhr


  • @MamunurRashid, bitte sehen Sie sich meine Antwort an, ich habe Ihr Problem für Sie gelöst.

    – Charles D Pantoga

    19. Oktober 2016 um 0:25 Uhr

Benutzer-Avatar
Rakesh Sojitra

Versuchen Sie dies in WordPress. Du solltest benutzen get_var() oder get_row() Methode.

$wpdb->query() gibt nur (int|false) Anzahl der betroffenen/ausgewählten Zeilen zurück oder im Fehlerfall false

$dataType = $wpdb->get_var("select data_type from information_schema.columns where table_name="$tableName" and column_name="$column_name" ");        
echo $dataType;exit;

Bearbeitet:

Ich habe es in meinem Lokal versucht. Sie sollten versuchen, diese beiden Variablen zu setzen $tableName="wp_posts"; $column_name="post_title"; Wie unten :

$tableName="wp_posts";
$column_name="post_title";
$data = $wpdb->get_var("select data_type from information_schema.columns where table_name="$tableName" and column_name="$column_name""); 
echo $data;

Ausgabe

mediumtext

  • Wo bezieht sich Ihr Kommentar auf get_var() ?

    – Rakesh-Sojitra

    14. Oktober 2016 um 6:22 Uhr

  • Entschuldigung für die Verspätung. Es kann etwas spät sein, um zu überprüfen, ob ich am Clint-Projekt arbeite.

    – Mamunur Rashid

    14. Oktober 2016 um 6:53 Uhr

Anscheinend stehen zu viele Tools (PHP / PhpAdmin) im Weg, um direkt zur Antwort zu gelangen. Wenn Sie nur nach der Antwort suchen, verwenden Sie das mysql-Befehlszeilentool:

mysql> SELECT data_type FROM information_schema.columns
    ->     WHERE column_name="id"
    ->       AND table_schema="try"
    ->       AND table_name="a";
+-----------+
| data_type |
+-----------+
| int       |
+-----------+
1 row in set (0.01 sec)

Wenn Sie das Ergebnis in PHP verwenden müssen, behandeln Sie es wie jedes andere SELECT — Verwenden Sie die entsprechenden API-Aufrufe in mysqli_* oder PDO zum Laufen SELECTrufen Sie dann die Zeilen ab (in diesem Fall eine Zeile) und sehen Sie sich die Spalten an (in diesem Fall eine Spalte).

Beachten Sie, dass Sie die enthalten sollten table_schema = ... falls es eine andere Datenbank mit demselben gibt table_name und column_name.

Die Werte von $tableName und $column_name in Ihrem WordPress sind nicht so, wie Sie es erwarten.

Ich verwende diesen Code:

select data_type from information_schema.columns where table_name="$tableName" and column_name="$column_name"

Aber nach Echo gibt es 1 zurück. Aber wenn ich es in phpmyadmin sql ausführe, gibt es data_type der Spalte zurück.

Denn wenn Sie es in phpmyadmin ausführen, ersetzen Sie die Werte für $tableName und $column_name ausdrücklich. Alle Werte, die Sie explizit ersetzen, sind das, was Sie erwarten $tableName und $column_name in Ihrem WordPress zu sein. Aber sie sind nicht das, was Sie von ihnen erwarten. Sie werden dies feststellen, indem Sie die Werte explizit in Ihrem WordPress festlegen.

select data_type from information_schema.columns where table_name="x" and column_name="y"

Ihre Frage enthält nicht genügend Informationen, um genau herauszufinden, was falsch ist. Alles, was Sie gezeigt haben, ist ein Teil davon, wie der Code aussieht. Nichtsdestotrotz besteht der nächste Schritt im Debugging-Prozess darin, die Variablen explizit festzulegen und dann vom Fehlerpunkt aus rückwärts zu arbeiten.

$tableName="x";
$column_name="y";
// ...
select data_type from information_schema.columns where table_name="$tableName" and column_name="$column_name"

Wenn Sie rückwärts debuggen, finden Sie den Fehler.

Sie können den Datentyp einfach wie folgt abrufen. wo immer du magst. Sie können andere data_type ändern, indem Sie den Wert von „$tableName“ und „$column_name“ unten ändern

<?php
global $wpdb;$prefix=$wpdb->prefix;
$tableName=$prefix.'posts';
$column_name="post_title";
echo $sql="SELECT data_type FROM information_schema.columns WHERE table_name="$tableName" AND column_name="$column_name" ";
  $dataType = $wpdb->get_var($sql);        
echo $dataType;?>

Es gibt einen aus, weil das der Rückgabewert ist – es bedeutet, dass ein Fehler vorliegt. Sie versuchen, eine Ergebnismenge aus einer Zeichenfolge (Ihrer Abfrage) und nicht aus dem tatsächlichen Ergebnisobjekt abzurufen.

So wird es funktionieren:

$tableName = mysqli_real_escape_string($tableName);
$columnName = mysqli_real_escape_string($tableName);
$query = "select data_type ";
$query .= "from information_schema.columns ";
$query .= "where table_name="$tableName" ";
$query .= "and column_name="$column_name" ";
$vv = $wpdb->query($query); 
$row = mysqli_fetch_row($vv); 

In Ihrem Kommentar sagten Sie, dies sei Ihre Code-Anweisung:

$query = "select data_type ";
$query .= "from information_schema.columns ";
$query .= "where table_name="$tableName" ";
$query .= "and column_name="$column_name" ";
$vv = $wpdb->query($query); 
$x = mysql_fetch_field ( $query ); 
echo $x; 
var_dump($x);

Benutzer-Avatar
Mamunur Rashid

$sql=”SELECT data_type FROM information_schema.columns WHERE table_name=”$tableName” AND column_name=”$column_name” “;

Benutzer-Avatar
Nuhel

Das ist das Richtige, ich habe es auch benutzt. $sql=”SELECT data_type FROM information_schema.columns WHERE table_name=”$tableName” AND column_name=”$column_name” “;

1363370cookie-checkHolen Sie Data_type aus der MySQL-Tabelle

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy