我想将数组插入MYSQL数据库,最好使用Yii的活动记录。
例如,我有一个数组:
User = array(
fname => "Joe"
lname => "Schmidt"
)
我的数据库中有一个包含列id,fname和lname的User表。其中一个选项是创建一个对象并执行:
$user = new User;
$user->fname = User['fname'];
$user->lname = User['lname'];
$user->save();
然而,对于这样的常见功能而言,这似乎是如此多的代码。有没有办法将数组插入到数据库中,其中数组键与相应的列匹配,而我没有编写自己的函数或执行一些SQL查询hack?理想情况下,它使用已存在的Yii的活动记录。
答案 0 :(得分:5)
答案 1 :(得分:0)
我之前从未使用过Yii,所以我无法使用它提供解决方案,但您可以序列化数组并将其存储在数据库的单个单元格中,如下所示:
$user = array("fname" => "Joe", "lname" => "Schmidt");
$serialized = serialize($user);
//Store the $serialized variable in the database
当您准备好访问它时:
//Get your data from the database
$unserialized = unserialize($usersFromDB);
$fname = $unserialized['fname']; //Joe
希望有所帮助。
答案 2 :(得分:-1)
该功能非常简单,试试这个:
function insert($table, $fields_values = array())
{
$q1 = join(",", array_keys($fields_values));
$q2 = "'".join("','", array_values($fields_values))."'";
$query = "INSERT INTO $table($q1) VALUES($q2)";
// do your DB insert here
}
主要技巧是使用join和array_keys / array_values查询转换的数组。
答案 3 :(得分:-1)
根据数组中的数据量,您可以编写自己的函数,例如
a)检查此backUpdate,修改它以插入/删除渲染视图选项
b)关注此thread
c)插入多条记录时可能traps
d)检查此关联的SOQ
如果您知道自己在做什么,那么您只需要照顾