如何使用PHP从MYSQL数据库中获取列类型并将其保存在变量中

如何使用PHP从MYSQL数据库中获取列类型并将其保存在变量中

问题描述:

我正在研究一个PHP应用程序,该应用程序具有一个侧面菜单栏,其中包含指向不同页面的链接列表以显示不同的表格。此应用程序具有创建新的侧面菜单项并将其添加到列表的功能,并且应该能够在单击它时显示其自己的表,为此我创建了一个对所有侧面菜单项都通用的表生成器文件,因此它重定向到具有默认表格模板的同一文件,但显示单击菜单项的表格。我添加了新数据和更新数据特征,以应用于在应用程序本身中创建的新表格。因此,现在它基于点击链接显示不同的数据库表,每当我为不同的页面显示一个新表时,我想写一个通用的更新语句,这个语句将根据加载的表进行更改。问题是我想要加载的列的类型,以便我可以使用switch语句将值添加到更新语句的基础上它的存储列引用类型('')为文本等如何使用PHP从MYSQL数据库中获取列类型并将其保存在变量中

我试过使用mysqli_fetch_field_direct函数,并试图将字段类型存储在一个变量中,但存储一个数字而不是字段类型。

非常感谢您的帮助。这是我的第一个问题,请不要介意这个问题的糟糕结构。

$columns= mysqli_query($conn,"SHOW COLUMNS FROM test_table"); // Selecting column titles of the table 
$array = array(); // Creating the array that will contain column names 
$i = 1; // Columns number 
$j = 0; 
$fType = array(); 
while ($row = mysqli_fetch_assoc($columns)) { 
    if($row['Field'] != 'id'){ 
     while ($i <= sizeof($array)) { 
      $name = "text"; 
      $var = $name . $i; // This variable is the name of the input field in the front end 
      $fType[] = $columns->fetch_field_direct($i)->type; //fetch field type and store in the array 
      $i++; 

     } 
    } 
    $array[] = $row['Field']; // Saving the name of each column in an array 
} 
+0

看一看http://*.com/questions/5093551/how-to-return-field-type-from-mysql-query – MortenSickel

+0

谢谢MortenSickel,帮助。 –

+0

“添加值...基于类型...像引号”?不要推出自己的逃脱系统。用占位符准备好的语句,让MySQL为你做好工作。 –

我想这就是你要做的。

$q = mysql_query('DESCRIBE tablename'); 
while($row = mysql_fetch_array($q)) { 
    echo "{$row['Field']} - {$row['Type']}\n"; 
} 
+0

谢谢你的工作!不要这么想。 –

+0

没问题。你能点击复选标记给我点数。 –