首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在mysql函数中创建动态php插入?

在mysql函数中创建动态php插入?
EN

Stack Overflow用户
提问于 2010-02-24 10:01:08
回答 1查看 3.7K关注 0票数 0

我有一个有很多变量的post,我想知道是否有某种方法可以动态地将信息插入到mysql中,而不是手动键入所有信息,因为post变量会根据用户的选择而变化。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-02-24 10:15:21

这就是我们用来做类似事情的东西(插入到我们无法控制的表中,并且没有API访问权限)

使用DESCRIBE查询可确保只插入存在的列。

代码语言:javascript
复制
$db = new DB();
$sql = 'DESCRIBE `table`';
$result = $db->query($sql);
$row = array();
$query = array();

while ($row = $result->fetchRow())
{
    if (array_key_exists($row['field'], $form_data))
        if (is_null($form_data[$row['field']]))
            $query[$row['field']] = 'NULL';
        else
            $query[$row['field']] = $db->quote($form_data[$row['field']]);
}

$keys = array_keys($query);

foreach ($keys as &$key)
    $key = $db->quoteIdentifier($key);

unset($key);

$vals = array_values($query);

$sql = 'INSERT INTO `table` '
     . '(' . implode(', ', $keys) . ') '
     . 'VALUES(' . implode(', ', $vals) . ')';

edit: DB()是MDB2的包装器。

当然,这允许它们填充整个行。如果您有受限制的列(自动增量ids等),则必须将这些列从表单数据中过滤出来……

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2323161

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档