我有一个数组,其中的键代表数据库中的每一列。现在我想要一个进行 mysql 更新查询的函数。类似的东西
$db['money'] = $money_input + $money_db;
$db['location'] = $location
$query = 'UPDATE tbl_user SET ';
for($x = 0; $x < count($db); $x++ ){
$query .= $db something ".=." $db something
}
$query .= "WHERE username=".$username." ";
最佳答案
你想要foreach
:
$values = array();
foreach($db as $column => $value){
$values[] = $column . "='" . mysql_real_escape_string($value) . "'";
}
$query .= implode(',', $values);
但是这会将所有值设置为字符串(不确定MySQL是否进行自动转换),您可能需要使用 is_numeric
进行测试第一:
if(!is_numeric($value)) {
$value = "'" . mysql_real_escape_string($value) . "'";
}
$values[] = $column . "=" . $value;
更新:
每当您在查询中设置字符串值时,都必须将它们放入引号中。因此你必须写:
$query .= "WHERE username='".$username."'";
(注意单引号)。
使用sprintf
可以让整个事情变得更加清晰。
关于php - 将数组插入mysql db函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4574981/