我使用下面的代码获取mysql表的行和列标题,而不必事先知道它们并格式化表。我正在创建一个服务,允许用户生成表并将它们保存到mysql数据库中,因此我需要能够以这种方式检索数据。
我正在尝试更新和编辑他的表,使之成为现实。通常,这是在知道所有列值的情况下单独更新每个值的情况下完成的。
这是我获取值的代码
<?php
try {
$con= new PDO('mysql:host=localhost;dbname=xxx', "", "");
$con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$query = "SELECT * FROM ``
//first pass just gets the column names
print "<table>";
$result = $con->query($query);
//return only the first row (we only need field names)
$row = $result->fetch(PDO::FETCH_ASSOC);
print " <tr>";
foreach ($row as $field => $value){
print " <th>$field</th>";
} // end foreach
print " </tr>";
//second query gets the data
$data = $con->query($query);
$data->setFetchMode(PDO::FETCH_ASSOC);
foreach($data as $row){
print " <tr>";
foreach ($row as $name=>$value){
print " <td>$value</td>";
} // end field loop
print " </tr>";
} // end record loop
print "</table>";
} catch(PDOException $e) {
echo 'ERROR: ' . $e->getMessage();
} // end try
?>
我正在尝试使用以下内容更新值:
foreach($_POST as $name=>$value)
{
if($value != '')
{
echo "$name: $value\n";
}
}
但是,行值根本不会更新。有没有什么方法可以在每次编辑值时扫描表并更新值?
1条答案
按热度按时间vbkedwbf1#
您不需要执行两次查询。你可以用
columnCount()
以及getColumnMeta()
方法获取所有列名。