我想创建一个函数,它接受一个表的名称和一个带有列名和值的数组,以使用它在MySQL中生成一个INSERT
检查我的代码。
不幸的是,这种技术不起作用,因为它总是在每个值之后生成一个逗号,这在输入数据时会产生错误。有人知道更好的方法来创建这个功能吗?
<?php
$arrayDados = array('nome' => 'Renato', 'idade' => 24, 'peso' => 36, 'mae' => 'neide');
$colunas = "";
$valores = "";
$tabela = 'cadastro';
foreach ($arrayDados as $key => $value) {
$colunas .= $key . ', ';
$valores .= $value.', ';
}
$sql = "INSERT INTO $tabela ($colunas) VALUES ($valores)";
echo $sql;`
答案 0 :(得分:2)
查看implode()
:http://php.net/manual/en/function.implode.php
implode(',', $yourArray);
实际上,尽可能使用准备好的查询而不是这样的东西,以避免未转义数据的问题。
答案 1 :(得分:1)
$sql = "INSERT INTO $tabela (".implode(",",array_keys($arrayDados)).") VALUES (".implode(",",array_values($arrayDados)).")";
文档:array_keys
- array_values
- implode