发布于 2014-08-21 15:54:54 | 1652 次阅读 | 评论: 0 | 来源: 网友投递
insert方法:insert($table, $data),接受两个参数的传入
第一个需要传入的参数类型为字符串:String,即为要插入数据的数据表名
第二个需要传入的参数类型为数组:array(),即为要插入的相应字段名称与相应字段名称对应的值
单条数据插入:
$database = new medoo("my_database");
$last_user_id = $database->insert("account", array(
"user_name" => "foo",
"email" => "foo@bar.com",
"age" => 25,
"lang" => array("en", "fr", "jp", "cn")
));
传入一个字符串,一个数组即可,以上表字段为:user_name、email、age、lang,类型均为varchar
值得注意的是:insert方法会判断插入的数据,如果插入数据的值中存在数组:array,会将该值进行序列化:serialize处理
多条数据插入:
$last_user_id = $database->insert("account", array(
array(
"user_name" => "foo",
"email" => "foo@bar.com",
"age" => 25,
"city" => "New York",
"lang" => array("en", "fr", "jp", "cn")
),
array(
"user_name" => "bar",
"email" => "bar@foo.com",
"age" => 14,
"city" => "Hong Kong",
"lang" => array("en", "jp", "cn")
)
));
传入一个字符串,一个二维数组,即可批量插入多条数据,以上表字段相对于单条数据插入的那张表,仅仅多了一个city字段,类型也为varchar
示例演示完毕后,可能会发现一个细节:两个示例中都有$last_user_id,如果仅仅只是运行insert,实际是可以不用定义变量$last_user_id,更不用给$last_user_id赋值
这里的两个示例均没有使用user_id字段,如此时强行打印$last_user_id
print_r($last_user_id);
值得注意的是,一个insert方法如果被定义且被赋给一个变量的时候,单条数据插入的返回值为字符串, 多条数据插入的值为数组
这里因为没有user_id字段,所以单条数据插入的值会为:0;多条数据插入的值为一个有两个键的数组,且两个键对应的值均为0
假设按照常规理论最应该增加的字段是user_id,且自增长,那么这个地方的返回值会是:(实际这里被赋值的$last_user_id就是存储的上一步insert操作产生的ID,等于mysql_insert_id()的值)
单条:返回一个字符串显示是一个数组
多条:返回一个数组,有几条就有几个键,这里只有两条所以只有两个键,“0”和“1”,两个键的值是递增的数字