从表中选择int和varchar类型的所有列

时间:2014-10-18 09:17:54

标签: php mysql sql

我有一个存储在testdb(数据库)的表,我需要从中选择int和varchar类型的所有列。我知道函数mysql_field_type但它在第5版的php中不起作用。

<?php
header('Content-Type: text/html; charset=utf-8');

$host = '127.0.0.1';
$user = 'root';
$pass = '';

$link = mysqli_connect($host , $user, $passw , 'testdb');

if(!$link){
    echo "Connection failure";
}else{
    echo "Connection success!";
}

$result = mysqli_query($link, 'SELECT * FROM `test_table`');

 while ($row = $result->fetch_assoc()) { 
    $table[] = $row; 
}
print_r ($table);

?>

3 个答案:

答案 0 :(得分:3)

尝试运行表单的查询:

select column_name
from Information_schema.columns
where table_name = 'test_table' and (data_type = 'int' or data_type = 'varchar');

这应该返回test_table中int或varchar的所有列的列表。然后,您可以迭代它们,并通过PHP中的查询连接或foreach为它们提取值。

答案 1 :(得分:2)

您可以使用fetch_field。 (http://tr1.php.net/manual/tr/mysqli-result.fetch-field.php

$cols = array();

while($field = $result->fetch_field()){
    if($field->type == 3 || $field->type == 253){
        $cols[] = $field->name;
    }
}
print_r($cols);

答案 2 :(得分:0)

由于您已经将值存储在$ table数组中,请在任何列

上尝试此操作

如果要选择列名,那么您的查询应该是这样的

从Table_name中选择column_name

使用is_numeric function

foreach ($table as $new_array)
{
    if(is_numeric($new_array))
    {
        $number[]=$new_array;
    }
    else{
        $string[]=$new_array;
    }
}

print_r($string);//see the result
print_r($number);//see the result

点击此链接: - http://php.net/manual/en/function.is-numeric.php