我想将我的代码从使用mysql转换为pdo。 我正在寻找mysql_field_name的等效函数,但我没有找到任何,除了这个函数PDOStatement :: getColumnMeta,但PHP文档说它"实验"它不会与未来的PHP版本一起使用。 所以我做了这个工作。
假设我有这张表
id name age city
1 ad 25 a
2 im 23 b
3 sh 21 c
我想只选择名称和城市
name city
ad a
im b
sh c
$link = new PDO("mysql:host=localhost;dbname=db_name;charset=utf8",user,pass);
$link->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$link->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$query="SELECT name,city FROM table" ;
$result = link->prepare($query);
$result->execute();
$result ->fetchAll(PDO::FETCH_ASSOC);
foreach ($result as $value){
$tablename =array_keys($value);
}
echo "<table><tr>";
foreach ($tablename as $key)
echo "<td>".$key."</td>";
echo "</tr></table>";
我不确定这是否是正确的方法。 或者如果有PDO功能可以做这项工作
答案 0 :(得分:1)
您可以获得这样的列名
foreach ($result as $row){
foreach($row as $col_name => $val)
{
echo "$col_name == $val<br />";
}
echo"Next Row<br />";
}
答案 1 :(得分:0)
假设您有一个名为 table
的表$select = $db->query('SELECT * FROM table');
$total_column = $select->columnCount();
var_dump($total_column);
for ($counter = 0; $counter < $total_column; $counter ++) {
$meta = $select->getColumnMeta($counter);
$column[] = $meta['name'];
}
$ column将包含完整的列列表,而列meta是一个可以帮助您获取列属性的函数。
由于 阿米特
答案 2 :(得分:-1)
$q = $dbh->prepare("DESCRIBE tablename");
$q->execute();
$table_fields = $q->fetchAll(PDO::FETCH_COLUMN);