将数据库中的c.column_names放入数组中

时间:2014-05-03 18:18:52

标签: php mysql sql arrays associative-array

执行这样的select语句后   我想从数据库中检索字段然后填充它并将其插回数据库。

$query = "SELECT c.column_name FROM information_schema.columns c";
$query.= " WHERE c.table_name    = '$table' AND c.table_schema  = '$db_name' ORDER BY
c.ordinal_position";
然后我把它拿到一个数组中,我尝试了很多方法。以下是其中一些

1-

$x=0;
$y=mysqli_num_rows($result) ;
while ($x<$y){
$row= mysqli_fetch_array($result);
$a1=array_fill(0,$y, array_values($row));

$x++;
       };

输出:Array ( [0] => Array ( [0] => age [1] => age ) [1] => Array ( [0] => age [1] => age ) [2] => Array ( [0] => age [1] => age ) )

和插入查询看起来像这样:

$query = "INSERT INTO ".$table." (`".implode('`,`', array_values($a1))."`) VALUES('".implode("','", $values)."')";

输出:INSERT INTO table (数组,数组,数组) VALUES('value1','value2')

2-

$x=0;
$y=mysqli_num_rows($result) ;
while ($x<$y){
$row= mysqli_fetch_assoc($result);
$x++;
     };

输出:Array ( [column_name] => age )

查询输出:INSERT INTO table (年龄) VALUES('value1','value2')

我尝试了所有基本的东西。

这里的问题是assoc数组只有一个Key [column_name],每次我获取一条新记录时它都会覆盖它。那么有谁能告诉我我做错了什么?

我修复了数组输出,但查询没有用,这就是我如何调用插入函数

public function Insert($table,$values,$db_name) {
    global $db;
   $attribute = $this->getcols($table, $db_name);
     // ^^ recives the returned assoc array $row from getcols

   $query = "INSERT INTO ".$table." (`".implode('`,`', array_values($attribute))."`) VALUES('".implode("','", $values)."')";

提前致谢:)

0 个答案:

没有答案