0

从数据库中,我可以通过下面的查询检索列的默认值。也就是说,我可以从 phpMyAdmin 和 dbForge Studio。通过 mysqli 可能,但我根本无法得到值 (TINYINT) 的回显。
需要它用默认值填充(可纠正和隐藏的)表单输入框。作为一个值,$btwl 保持为空;在该列中的单个记录上使用的相同代码有效。所以,我希望有另一种类型的获取需要回显一个默认密码,但我找不到任何文档如何。帮助表示赞赏。

    require ("dbconn.inc.php");
    //this should be the desired output retrieved from information_schema
    $Qdefault = "SELECT column_default
          FROM information_schema.columns
          WHERE table_name = 'keuken'
          AND column_name = 'BTW'
          LIMIT 1";
    $resultdefault = $mysqli->query($Qdefault);

      while ($row= $resultdefault->fetch_assoc()){
      $btwl= $row['BTW'];

      echo $row['BTW']. $row['Default']. $btwl . "%  at least 2x the value expected<br><br>";
        }

这没有任何价值。默认列值已填充。
该查询经过双重检查,并在远程主机和本地上的 phpMyAdmin 和 dbForge Studio 中给出预期值 6。

SELECT CREATE TABLE KEUKEN
  CREATE TABLE `keuken` (    
  `ArtNr` int(5) unsigned NOT NULL,  
  `reeks` varchar(16) NOT NULL COMMENT 'binnen                                                         
        reeks op hoofdingredient of gang',                                                       
  `groep` varchar(16) DEFAULT NULL,  
  `omschrijving` varchar(32) NOT NULL, 
  `Prijs_Incl` decimal(8,2) unsigned NOT NULL,                                                    
  `Prijs_Excl` decimal(10,4) unsigned DEFAULT NULL,              
  `variaties` char(1) DEFAULT NULL COMMENT       
              'sterretje in tabel',               
  `aantal` char(6) DEFAULT NULL,   
  `BTW` tinyint(2) NOT NULL DEFAULT '7',     
   PRIMARY KEY (`ArtNr`)    
  ) ENGINE=InnoDB DEFAULT CHARSET=utf8  

SELECT column_default 等,由 Paul T. 在 dbForge 客户端中格式化

    $Q = "SELECT column_default FROM information_schema.`COLUMNS` where 
    table_name = 'keuken'";
    $result = $mysqli->query($Q);
    while ($row= $result->fetch_assoc()){
    echo $row['column_default'];  

这有效,结果如预期。

4

2 回答 2

0

如果您使用 Php 调用数据库值,您将使用 Mysqli

$query="SELECT email_id FROM students";
$result=mysqli_query($connection,$query);

列值作为数组存储在$result变量中

while($row = mysqli_fetch_array($result)) {
    echo $row[0];
}

使用 mysqli_fetch_array() 的一个好处是您可以使用索引和列名来调用查询值!

于 2020-07-04T11:23:18.980 回答
0

对我来说,列的名称实际上是column_default,并且您的 SELECT 查询具有相同的列。因此,BTW不会是查询结果的一部分,也不会是Default.

你能检查一下,然后你应该只需要:

echo $row['column_default'];

所以对于我的测试运行:

SELECT column_default FROM information_schema.`COLUMNS` where table_name = 'tryMe' and column_name = 'date' 

在此处输入图像描述

...并从 mysql 客户端: 在此处输入图像描述

=====

更新:

PHP 输出:

array(1) { [0]=> array(1) { ["column_default"]=> string(17) "CURRENT_TIMESTAMP" } } 
于 2017-07-18T23:19:40.143 回答