Obtener tipo de datos de la tabla mysql

5 minutos de lectura

avatar de usuario
Mamunur Rashid

Yo uso este código:

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

Pero después echoesta regresando 1. Pero cuando lo ejecuto en phpmyadmin sql está regresando data_type de columna

Quiero data_type de la columna Mysql Table (estoy usando WordPress).

  • enseña tu echo fragmento de código relacionado

    – 1000111

    9 de agosto de 2016 a las 7:28

  • Probé todo esto > $vv = mysql_query($query); $x = mysql_field_type ( $vv , 0); eco $x; var_dump($x);

    – Mamunur Rashid

    9 de agosto de 2016 a las 7:29


  • $consulta = “select data_type from information_schema.columns where table_name = ‘$tableName’ and column_name = ‘$column_name’ “; $vv = $wpdb->consulta($consulta); $x = mysql_fetch_field ($consulta); eco $x; var_dump($x);

    – Mamunur Rashid

    9 de agosto de 2016 a las 7:32


  • @MamunurRashid, vea mi respuesta, he resuelto su problema por usted.

    – Charles D Pantoga

    19 oct 2016 a las 0:25

avatar de usuario
Rakesh Sojitra

Prueba esto en wordpress. Deberías usar get_var() o get_row() método.

$wpdb->query() solo devuelve (int|false) Número de filas afectadas/seleccionadas o false en caso de error

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

Editado:

He probado en mi local como. deberías probar configurando estos dos varibale $tableName="wp_posts"; $column_name="post_title"; como abajo :

$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;

Producción

mediumtext

  • ¿Dónde está su comentario relacionado con get_var() ?

    – Rakesh Sojitra

    14 de octubre de 2016 a las 6:22

  • Lo siento por llegar tarde. Puede ser un poco tarde para verificar que estoy trabajando en el proyecto Clint.

    – Mamunur Rashid

    14 de octubre de 2016 a las 6:53

Aparentemente, demasiadas herramientas (PHP / PhpAdmin) se interponen en el camino de ir directamente a la respuesta. Si solo está buscando la respuesta, use la herramienta de línea de comandos mysql:

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)

Si necesita usar el resultado en PHP, trátelo como cualquier otro SELECT — use las llamadas API apropiadas en mysqli_* o PDO para ejecutar el SELECTluego obtenga las filas (una fila en este caso) y mire las columnas (una columna en este caso).

Tenga en cuenta que debe incluir el table_schema = ... en caso de que exista otra base de datos con la misma table_name y column_name.

los valores de $tableName y $column_name en tu WordPress no son lo que esperas que sean.

Yo uso este código:

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

Pero después de echo, devuelve 1. Pero cuando lo ejecuto en phpmyadmin sql, devuelve data_type de columna.

Porque cuando lo está ejecutando en phpmyadmin, está sustituyendo los valores por $tableName y $column_name explícitamente. Cualquier valor que esté sustituyendo explícitamente es lo que espera $tableName y $column_name estar dentro de tu WordPress. Pero no son lo que esperas que sean. Descubrirá esto configurando explícitamente los valores dentro de su WordPress.

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

No hay suficiente información en su pregunta para averiguar exactamente qué es lo que está mal. Todo lo que ha mostrado es una parte de cómo se ve el código. No obstante, el siguiente paso en el proceso de depuración será establecer explícitamente las variables y luego trabajar hacia atrás desde el punto de error.

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

Depurando hacia atrás encontrarás el error.

simplemente puede obtener el tipo de datos como se muestra a continuación. donde quieras puede cambiar diferentes tipos de datos cambiando el valor de “$tableName” y “$column_name” a continuación

<?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;?>

Está imprimiendo uno porque ese es el valor devuelto, significa que hay un error. Está intentando obtener un conjunto de resultados de una cadena (su consulta) en lugar del objeto de resultado real.

Esto es lo que hará que funcione:

$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); 

En su comentario, dijo que esta era su declaración de código:

$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);

avatar de usuario
Mamunur Rashid

$sql=”SELECCIONE tipo_datos DESDE esquema_información.columnas DONDE table_name=”$tableName” AND column_name=”$column_name” “;

avatar de usuario
Nuhel

Este es el correcto, yo también lo usé. $sql=”SELECCIONE tipo_datos DESDE esquema_información.columnas DONDE table_name=”$tableName” AND column_name=”$column_name” “;

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad