执行这样的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)."')";
提前致谢:)