php - 如何使用关联数组向 MySql 中插入数据

标签 php mysql

<分区>

我现在在关联数组中插入数据时遇到问题,其键作为表中的字段,值插入到 MySql 数据库中。这是我的代码。

<?php
$table = 'articles';

$data = array(
        'title' => 'Header',
        'content' => 'This is content',
        'author' => 'James');

$keys = implode(', ', array_keys($data));
$values = implode(', ', array_values($data));

$sql = 'insert into '.$table.'('.$keys.') values ('.$values.')';

$db = new mysqli('localhost', 'root', 'root', 'blog');
$db->query($sql);
?>

使用这段代码,我无法将数据插入数据库,所以我尝试回显查询字符串,结果如下:

insert into articles(title, content, author) values (Header, This is content, James)

但是,如果我像这样在每个值中使用单引号

insert into articles(title, content, author) values ('Header', 'This is content', 'James')

我可以成功地将数据插入数据库。

所以我不知道这里出了什么问题。引号是否有问题,因为当我使用单引号时,这似乎有效。

所以请帮我找到合适的解决方案...

最佳答案

对于查询,您需要将每个值括在引号中。为此,您可以更改内爆语句以将引号包含在值周围 -

$values = "'" .implode("','", array_values($data)) . "'";

您还应该检查错误。

替换$db->query($sql);

if(!$result = $db->query($sql)){ 

die('There was an error running the query [' . $db->error . ']'); 

}

else{
echo "Data inserted.";
}

关于php - 如何使用关联数组向 MySql 中插入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27843996/

相关文章:

php - 在 Windows 8 PC、Xampp 中安装 Symfony 2.8

php - 如何修复我的脚本 : UPDATE user pass (php mysql) (no errors but something not working)

php - MySQL - 如何在 where 条件下匹配 JSON 字符串?

php - 如何在 php 中循环更新查询并显示它,使其像日志历史记录一样

java - JpaRepository findAll() 将不会返回具有空字段的行

MySQL触发器没有被触发?

php - 如何修复 "Recoverable fatal error: Object of class Closure could not be converted to string in..."

php - 外键如何引用多个主键

PHP Json 到 MySql (opencart)

mysql - 重新排序 MySQL 表中的行