php - 将数组插入mysql db函数

标签 php mysql sql

我有一个数组,其中的键代表数据库中的每一列。现在我想要一个进行 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/

相关文章:

php - 返回数组,而不是来自 Doctrine 查询的对象 - Symfony2

php - 调用javascript函数来运行php代码

php - 循环时无法获取所有数据xml

mysql - 将 Oracle/MySQL 与 .NET Entity Framework 结合使用有什么更好的方法吗?

sql - Oracle DB 等效于重复 key 更新

php - 使用 PHP 重命名文件

php - 通过 PHP 和 MySQL 查询将一批 key 提交到数据库

php - 如何在单个数组中获取 php PDO QUERY 结果集而不是嵌套在一个数组中

php - magento 安装后使用旧数据库

asp.net - VB 独立应用程序或 ASP Web 应用程序