在thinkphp3.2中,修改數據是一個常見的操作。本文將介紹如何在thinkphp3.2中進行數據修改。
首先,我們需要準備一個示例數據表。假設我們有一個名為book的數據表,其結構如下:
id int(11) NOT NULL AUTO_INCREMENT, name varchar(255) COLLATE utf8_unicode_ci NOT NULL, author varchar(255) COLLATE utf8_unicode_ci NOT NULL, price decimal(10,2) NOT NULL, PRIMARY KEY (id)
在該數據表中,我們可以存儲書籍的名字、作者和價格。
接下來,我們需要創建一個Book模型。在AppModel目錄下創建一個新模型:
namespace AppModel; use thinkModel; class Book extends Model { }
在模型類里,我們需要指定使用的數據表。為了簡便,我們可以在模型類里定義一個protected $table屬性:
立即學習“PHP免費學習筆記(深入)”;
namespace AppModel; use thinkModel; class Book extends Model { protected $table = 'book'; }
這樣,Book模型就可以與book數據表進行交互了。
接下來,我們需要編寫修改數據的代碼。假設我們要修改某一本書籍的價格。我們可以通過以下代碼實現:
use AppModelBook; $book = Book::get(1); // 獲取主鍵為1的書籍對象 $book->price = 29.99; // 修改價格 $book->save(); // 保存修改
在上述代碼中,我們首先使用Book::get(1)方法獲取主鍵為1的書籍對象,然后修改了價格并通過$book->save()方法保存修改。
除了通過主鍵獲取對象,我們也可以使用where方法進行篩選對象。例如,如果我們要修改作者為“張三”的所有書籍的價格,可以使用以下代碼:
use AppModelBook; $books = Book::where('author', '=', '張三')->select(); // 獲取所有作者為“張三”的書籍對象 foreach ($books as $book) { $book->price *= 0.8; // 將價格打八折 $book->save(); // 保存修改 }
在上述代碼中,我們使用Book::where(‘author’, ‘=’, ‘張三’)->select()方法獲取所有作者為“張三”的書籍對象,并通過foreach循環遍歷這些對象,將價格打八折并保存修改。
除了上述方法外,我們還可以使用update方法一次性修改數據。例如,如果我們要將所有作者為“李四”的書籍價格修改為35元,可以使用以下代碼:
use AppModelBook; $result = Book::where('author', '=', '李四')->update(['price' => 35.00]); // 修改價格 if ($result !== false) { echo '修改成功!'; // 輸出結果 }
在上述代碼中,我們使用Book::where(‘author’, ‘=’, ‘李四’)->update([‘price’ => 35.00])方法一次性將作者為“李四”的所有書籍的價格修改為35元,并通過$result !== false判斷修改是否成功。