添加數(shù)據(jù)add方法是CURD(Create,Update,Read,Delete / 創(chuàng)建,修改,讀取,刪除)中的 Create的實(shí)現(xiàn),ThinkPHP 支持以普通數(shù)組方式和面向?qū)ο蠓绞綄?shù)據(jù)寫(xiě)入數(shù)據(jù)表。
成都創(chuàng)新互聯(lián)公司公司2013年成立,是專(zhuān)業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目做網(wǎng)站、網(wǎng)站制作網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元巧家做網(wǎng)站,已為上家服務(wù),為巧家各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18980820575
現(xiàn)在以操作 user 表數(shù)據(jù)的例子為例,來(lái)演示如何在 ThinkPHP 中實(shí)現(xiàn)對(duì)數(shù)據(jù)表的數(shù)據(jù)添加操作。
數(shù)組方式添加數(shù)據(jù)
例子: 在 IndexAction 控制器(Lib/Action/IndexAction.class.php),添加 insert()操作:
public function insert(){
header("Content-Type:text/html; charset=utf-8");
$Dao = M("User"); // 實(shí)例化模型類(lèi)
// 構(gòu)建寫(xiě)入的數(shù)據(jù)數(shù)組
$data["username"] = "休假";
$data["password"] = md5("123456");
$data["email"] = "123456@163.com";
$data["regdate"] = time();
// 寫(xiě)入數(shù)據(jù)
if($lastInsId = $Dao-add($data)){
echo "插入數(shù)據(jù) id 為:$lastInsId";
} else {
$this-error('數(shù)據(jù)寫(xiě)入錯(cuò)誤!');
}
}
語(yǔ)法解讀
M("User") 用于高效實(shí)例化一個(gè)數(shù)據(jù)模型(M 是 new Model 的簡(jiǎn)寫(xiě),稱(chēng)為快捷方法),參數(shù)為要操作的表名。
接下來(lái)構(gòu)建要保存數(shù)據(jù)的數(shù)組 $data 。
最后是用 add() 方法將數(shù)據(jù)寫(xiě)入庫(kù)表,由于使用的是 M快捷方法,需要將 $data 數(shù)組傳入 add() 方法。
add() 方法如果添加數(shù)據(jù)記錄成功,返回的是新數(shù)據(jù)記錄主鍵,可直接得到。
該例子實(shí)際運(yùn)行的 SQL 為:
INSERT INTO user(username,password,email,regdate) VALUES ('休假','e10adc3949ba59abbe56e057f20f883e',
123456@163.com',1283612673)
對(duì)象方式添加數(shù)據(jù)
上面的方式是以構(gòu)造數(shù)據(jù)數(shù)組的方式,將數(shù)據(jù)以參數(shù)形式傳入add方法寫(xiě)入數(shù)據(jù)表。ThinkPHP 也支持以對(duì)象的方式將數(shù)據(jù)寫(xiě)入數(shù)據(jù)表,將上面的代碼更改為:
public function insert(){
header("Content-Type:text/html; charset=utf-8");
$Dao = M("User"); // 實(shí)例化模型類(lèi)
// 數(shù)據(jù)對(duì)象賦值
$Dao-username = "休假";
$Dao-password = md5("123456");
$Dao-email = "123456@163.com";
$Dao-regdate = time();
// 寫(xiě)入數(shù)據(jù)
if($lastInsId = $Dao-add()){
echo "插入數(shù)據(jù) id 為:$lastInsId";
} else {
$this-error('數(shù)據(jù)寫(xiě)入錯(cuò)誤!');
}
}
對(duì)象方式的數(shù)據(jù)以數(shù)據(jù)對(duì)象方式賦值,調(diào)用 add 方法寫(xiě)入數(shù)據(jù)時(shí)不需要傳遞參數(shù)。
表單數(shù)據(jù)智能寫(xiě)入create 方法
除了手動(dòng)構(gòu)造入庫(kù)的數(shù)據(jù)集之外,ThinkPHP 還提供了自動(dòng)創(chuàng)建數(shù)據(jù)對(duì)象的create() 方法。create() 方法將自動(dòng)收集提交的表單數(shù)據(jù)并創(chuàng)建數(shù)據(jù)對(duì)象而無(wú)需人工干預(yù),這在表單數(shù)據(jù)字段非常多的情況下更具優(yōu)勢(shì)。
將前文寫(xiě)入表單數(shù)據(jù)的例子用 create() 來(lái)實(shí)現(xiàn):
public function insert2(){
header("Content-Type:text/html; charset=utf-8");
$Dao = M("User");
if($Dao-create()){
$Dao-password = md5($_POST["password"]);
$Dao-regdate = time();
if($lastInsId = $Dao-add()){
echo "插入數(shù)據(jù) id 為:$lastInsId";
} else {
echo "數(shù)據(jù)寫(xiě)入錯(cuò)誤!";
}
}else{
exit($Dao-getError().' [ a href="javascript:history.back()"返 回/a ]');
}
}
create() 創(chuàng)建數(shù)據(jù)對(duì)象后,將自動(dòng)收集提交過(guò)來(lái)的表單數(shù)據(jù)。而表單數(shù)據(jù)可能需要經(jīng)過(guò)一定加工(例如將密碼加密)才能寫(xiě)入數(shù)據(jù)表,所以可以對(duì)數(shù)據(jù)對(duì)象的成員屬性值根據(jù)進(jìn)行修改或添加刪除等。
提示:create() 創(chuàng)建的數(shù)據(jù)對(duì)象存放于內(nèi)存,在執(zhí)行入庫(kù)動(dòng)作(add() 或 save())之前,都可以進(jìn)行修改。
在上面的例子里,create()方法 的行為和 date()方法 是一致。但 date() 方法只是簡(jiǎn)單的創(chuàng)建數(shù)據(jù)對(duì)象,但 create() 方法還具備:
令牌驗(yàn)證
數(shù)據(jù)自動(dòng)驗(yàn)證
字段映射支持
字段類(lèi)型檢查
數(shù)據(jù)自動(dòng)完成
等各種高級(jí)的數(shù)據(jù)功能,要完成這些高級(jí)數(shù)據(jù)模型功能,需要使用 D方法實(shí)例化數(shù)據(jù)模型。
array_splice() 函數(shù)從數(shù)組中可實(shí)現(xiàn)對(duì)數(shù)據(jù)中元素的添加、修改、刪除操作,方便對(duì)數(shù)組中的值進(jìn)行處理。
語(yǔ)法:array_splice(array,start,length,array) ,start是從0開(kāi)始標(biāo)記,千萬(wàn)不要忘記。注意添加和修改時(shí)參數(shù)是4個(gè),刪除是3個(gè)參。
添加元素:
刪除元素:
修改元素:
$arr_a=(image0,image1,image2,image3
);//定義原數(shù)組
$n=count($arr_a);//得到數(shù)組長(zhǎng)度
for($i=1;$i$n;$i++){
$intro[]='NULL';
};//插入$intro前n-1個(gè)
$intro['front_intro']=$arr_a['$n'];//插入$intro最后一個(gè)指針
$arr[]=$arr_a['1'];
$arr['intro']=$intro;
$arr[]=$arr_a['2'];
for($i=3;$i$n;$i++){
$arr[$i]=$arr_a[$i];
}
$arr['front_img']=$arr_a['0'];
$mixValue?=?"helloworld";
$arr?=?array();
//
$arr[0]?=?$mixValue;
//
array_push($arr,$mixValue);
var_dump($arr);
PHP有自帶的高性能函數(shù) var_export
conn.php
?php
$dbconfig = array (
'host'='127.0.0.1',
'name'='root',
'password'='123456',
?
b.php
?php
// 讀取配置
include 'conn.php';
echo $dbconfig['host'];
// 修改配置
$dbconfig['host'] = 'xxx.xxx.xxx.xxx';
file_put_contents('conn.php', "?php\n$dbconfig = " . var_export($dbconfig) . "\n?");
// 再讀取配置
include 'conn.php';
echo $dbconfig['host'];
?
參考連接:
array2string函數(shù) 是phpcms自帶的函數(shù)
/phpcms/libs/functions/global.func.php 第293行
/**
* 將數(shù)組轉(zhuǎn)換為字符串
*
* @param array $data 數(shù)組
* @param bool $isformdata 如果為0,則不使用new_stripslashes處理,可選參數(shù),默認(rèn)為1
* @return string 返回字符串,如果,data為空,則返回空
*/
function array2string($data, $isformdata = 1) {
if ($data == '')
return '';
if ($isformdata)
$data = new_stripslashes($data);
return addslashes(var_export($data, TRUE));
}
文章題目:php往空數(shù)組里面加數(shù)據(jù) php往空數(shù)組里面加數(shù)據(jù)怎么做
標(biāo)題網(wǎng)址:http://muchs.cn/article44/hpheee.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營(yíng)銷(xiāo)、外貿(mào)建站、域名注冊(cè)、建站公司、網(wǎng)站維護(hù)、網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)