添加數(shù)據(jù)add方法是CURD(Create,Update,Read,Delete / 創(chuàng)建,修改,讀取,刪除)中的 Create的實現(xiàn),ThinkPHP 支持以普通數(shù)組方式和面向?qū)ο蠓绞綄?shù)據(jù)寫入數(shù)據(jù)表。
創(chuàng)新互聯(lián)長期為成百上千客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為云縣企業(yè)提供專業(yè)的網(wǎng)站建設(shè)、成都網(wǎng)站建設(shè),云縣網(wǎng)站改版等技術(shù)服務(wù)。擁有十多年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
現(xiàn)在以操作 user 表數(shù)據(jù)的例子為例,來演示如何在 ThinkPHP 中實現(xiàn)對數(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"); // 實例化模型類
// 構(gòu)建寫入的數(shù)據(jù)數(shù)組
$data["username"] = "休假";
$data["password"] = md5("123456");
$data["email"] = "123456@163.com";
$data["regdate"] = time();
// 寫入數(shù)據(jù)
if($lastInsId = $Dao-add($data)){
echo "插入數(shù)據(jù) id 為:$lastInsId";
} else {
$this-error('數(shù)據(jù)寫入錯誤!');
}
}
語法解讀
M("User") 用于高效實例化一個數(shù)據(jù)模型(M 是 new Model 的簡寫,稱為快捷方法),參數(shù)為要操作的表名。
接下來構(gòu)建要保存數(shù)據(jù)的數(shù)組 $data 。
最后是用 add() 方法將數(shù)據(jù)寫入庫表,由于使用的是 M快捷方法,需要將 $data 數(shù)組傳入 add() 方法。
add() 方法如果添加數(shù)據(jù)記錄成功,返回的是新數(shù)據(jù)記錄主鍵,可直接得到。
該例子實際運行的 SQL 為:
INSERT INTO user(username,password,email,regdate) VALUES ('休假','e10adc3949ba59abbe56e057f20f883e',
123456@163.com',1283612673)
對象方式添加數(shù)據(jù)
上面的方式是以構(gòu)造數(shù)據(jù)數(shù)組的方式,將數(shù)據(jù)以參數(shù)形式傳入add方法寫入數(shù)據(jù)表。ThinkPHP 也支持以對象的方式將數(shù)據(jù)寫入數(shù)據(jù)表,將上面的代碼更改為:
public function insert(){
header("Content-Type:text/html; charset=utf-8");
$Dao = M("User"); // 實例化模型類
// 數(shù)據(jù)對象賦值
$Dao-username = "休假";
$Dao-password = md5("123456");
$Dao-email = "123456@163.com";
$Dao-regdate = time();
// 寫入數(shù)據(jù)
if($lastInsId = $Dao-add()){
echo "插入數(shù)據(jù) id 為:$lastInsId";
} else {
$this-error('數(shù)據(jù)寫入錯誤!');
}
}
對象方式的數(shù)據(jù)以數(shù)據(jù)對象方式賦值,調(diào)用 add 方法寫入數(shù)據(jù)時不需要傳遞參數(shù)。
表單數(shù)據(jù)智能寫入create 方法
除了手動構(gòu)造入庫的數(shù)據(jù)集之外,ThinkPHP 還提供了自動創(chuàng)建數(shù)據(jù)對象的create() 方法。create() 方法將自動收集提交的表單數(shù)據(jù)并創(chuàng)建數(shù)據(jù)對象而無需人工干預(yù),這在表單數(shù)據(jù)字段非常多的情況下更具優(yōu)勢。
將前文寫入表單數(shù)據(jù)的例子用 create() 來實現(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ù)寫入錯誤!";
}
}else{
exit($Dao-getError().' [ a href="javascript:history.back()"返 回/a ]');
}
}
create() 創(chuàng)建數(shù)據(jù)對象后,將自動收集提交過來的表單數(shù)據(jù)。而表單數(shù)據(jù)可能需要經(jīng)過一定加工(例如將密碼加密)才能寫入數(shù)據(jù)表,所以可以對數(shù)據(jù)對象的成員屬性值根據(jù)進行修改或添加刪除等。
提示:create() 創(chuàng)建的數(shù)據(jù)對象存放于內(nèi)存,在執(zhí)行入庫動作(add() 或 save())之前,都可以進行修改。
在上面的例子里,create()方法 的行為和 date()方法 是一致。但 date() 方法只是簡單的創(chuàng)建數(shù)據(jù)對象,但 create() 方法還具備:
令牌驗證
數(shù)據(jù)自動驗證
字段映射支持
字段類型檢查
數(shù)據(jù)自動完成
等各種高級的數(shù)據(jù)功能,要完成這些高級數(shù)據(jù)模型功能,需要使用 D方法實例化數(shù)據(jù)模型。
沒用框架就直接拼接sql語句啊
$sql = 'insert into tablename(field1, field2, field3) values(val1, val2, val3), (val1, val2,val3)';
主要就是拼接values后面的內(nèi)容,一個括號一條數(shù)據(jù),拼接完執(zhí)行數(shù)據(jù)庫插入操作就行了;
如果數(shù)據(jù)量很大,注意每次拼接的sql不要太長了,數(shù)據(jù)庫執(zhí)行的sql也是有長度限制的
在PHP中,使用array_push()函數(shù)可以向數(shù)組中添加元素,將傳入的元素添加到某個數(shù)組末尾,并返回數(shù)組新的單元總數(shù).
語法:int arrar_push(array array,mixed var[,mixed...])
說明:參數(shù)array為指定的數(shù)組,參數(shù)var是加入數(shù)組中的值.
使用array_push()函數(shù)向數(shù)組中添加元素,并輸出添加元素后的數(shù)組,代碼如下
$array = array(0='迅美科技',1='網(wǎng)站建設(shè)')
echo "添加前的數(shù)組元素:"
print_r($array);
echo"
";
array_push($array,'業(yè)務(wù)代表:李生')
echo"添加后的數(shù)組元素:"
print_r($array);
?
運行代碼后的結(jié)果為:
添加前的數(shù)組元素:Array([0]=迅美科技 [1]=網(wǎng)站建設(shè))
添加后的數(shù)組元素:Array([0]=迅美科技 [1]=網(wǎng)站建設(shè) [2]=業(yè)務(wù)代表:李生)關(guān)于這個問題,差不多就是這個樣子的了,你如果不明白,可以自己去后盾瞅瞅,我這些都是在后盾上學(xué)的,有空可以去看一下,就算不喜歡也沒關(guān)系啊,何樂而不為呢?
$mixValue?=?"helloworld";
$arr?=?array();
//
$arr[0]?=?$mixValue;
//
array_push($arr,$mixValue);
var_dump($arr);
把數(shù)組轉(zhuǎn)成json或其他字符串在寫入數(shù)據(jù)庫,不轉(zhuǎn)換字符串無法寫入或自由Array,我是沒試過,反正我知道是無法寫入,我都是轉(zhuǎn)成json后在寫入。
?php
$array=array(
"data1"="data1",
"data2"=array(
"data22"="data22",
"data222"="data222"
),
"data3"="data3"
);
$encode=json_encode($array);?//數(shù)據(jù)庫寫入轉(zhuǎn)換
$addslashes=addslashes(json_encode($array));?//如果只用英文字符的話可以直接用上面,用中文或有帶斜杠/,PHP寫入數(shù)據(jù)庫的時候會去掉斜杠/,所以addslashes函數(shù)在轉(zhuǎn)換下寫入
$decode=json_decode($array,true);?//數(shù)據(jù)庫讀取轉(zhuǎn)換
?
有兩種方法添加一個元素:分別是 push()和arr[]
1、Php代碼
$arr = array();
array_push($arr, el1, el2 ... eln);
2、Php代碼
$arr = array();
$arr[] = el1;
$arr[] = el2;
...
$arr[] = eln;
擴展資料
對于任何的類型:整型、浮點、字符串、布爾和資源,如果將一個值轉(zhuǎn)換為數(shù)組,將得到一個僅有一個元素的數(shù)組(其下標(biāo)為 0),該元素即為此標(biāo)量的值。
如果將一個對象轉(zhuǎn)換成一個數(shù)組,所得到的數(shù)組的元素為該對象的屬性(成員變量),其鍵名為成員變量名。
如果將一個 NULL 值轉(zhuǎn)換成數(shù)組,將得到一個空數(shù)組。
PHP的特性包括:
1. PHP 獨特的語法混合了 C、Java、Perl 以及 PHP 自創(chuàng)新的語法。
2. PHP可以比CGI或者Perl更快速的執(zhí)行動態(tài)網(wǎng)頁——動態(tài)頁面方面,與其他的編程語言相比,
PHP是將程序嵌入到HTML文檔中去執(zhí)行,執(zhí)行效率比完全生成htmL標(biāo)記的CGI要高許多;
PHP具有非常強大的功能,所有的CGI的功能PHP都能實現(xiàn)。
3. PHP支持幾乎所有流行的數(shù)據(jù)庫以及操作系統(tǒng)。
4. 最重要的是PHP可以用C、C++進行程序的擴展!
參考資料:百度百科-PHP
網(wǎng)頁標(biāo)題:php往空數(shù)組插數(shù)據(jù) php數(shù)組為空
標(biāo)題網(wǎng)址:http://jinyejixie.com/article34/dosdepe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號、關(guān)鍵詞優(yōu)化、Google、網(wǎng)站建設(shè)、標(biāo)簽優(yōu)化、靜態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)