thinkphpによるmysqlのCURD操作
10301 ワード
thinkphp(3.2.3)を使用してデータベースを操作するには、まずデータベースに接続します.あるデータベースにプロファイルを書く必要があります.thinkphpはそのプロファイルに基づいて自動的にデータベースに接続します.モデルファイルはカスタマイズせず、内蔵で問題を解決します.プロファイルはディレクトリアプリケーションに書きます.phpの下:
これで、準備が終わります.このうち、そのデータベーステーブルの接頭辞は、ネット上ではデフォルトについて様々な説があり、私のデフォルトは空です.他の接頭辞を推定してphpmyadminを開くと見えますよね.
CURD操作コードはすべてディレクトリにあります.class.phpでは、これはコントローラファイルです.以下は、Mメソッドを使用してテーブルオブジェクトをインスタンス化します.
C
データの挿入
複数のデータを挿入
R
読み取りレコードfindメソッドは、最初の条件を満たすレコードを返します.
複数のデータを読み込むselectメソッドクエリが間違っている場合、selectの戻り値はfalseであり、クエリの結果が空の場合はNULLを返し、そうでない場合は2 D配列を返します.
フィールド値の読み込み
U
saveメソッド
フィールドの更新
複数フィールドの更新
一方、統計フィールド(通常はデジタルタイプを指す)の更新には、setIncメソッドとsetDecメソッドも提供されます.
3.2.3バージョンから、setIncとsetDecメソッドは遅延更新をサポートし、使用方法は以下の通りである.
D
deleteメソッド
deleteメソッドでは、単一のデータを削除したり、複数のデータを削除したりできます.これは、削除条件に依存します.たとえば、次のようにします.
<?php
return array(
//' '=>' '
'DB_TYPE'=> 'mysql',//
'DB_HOST'=> '127.0.0.1',//
'DB_NAME'=>'jiu151231',//
'DB_USER'=>'root',//
'DB_PWD'=>'',//
'DB_PORT'=>'3306',//
'DB_PREFIX'=>'',//
);
これで、準備が終わります.このうち、そのデータベーステーブルの接頭辞は、ネット上ではデフォルトについて様々な説があり、私のデフォルトは空です.他の接頭辞を推定してphpmyadminを開くと見えますよね.
CURD操作コードはすべてディレクトリにあります.class.phpでは、これはコントローラファイルです.以下は、Mメソッドを使用してテーブルオブジェクトをインスタンス化します.
C
データの挿入
<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
public function index(){
$jiu0=M('myguests');
$j0['firstname']='lv';
$j0['lastname']='oe';
$jiu0->add($j0);
}
}
複数のデータを挿入
<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
public function index(){
$jiu0=M('myguests');
$list[]=array('firstname'=>'li','lastname'=>'weifeng');
$list[]=array('firstname'=>'liu','lastname'=>'tian');
$jiu0->addAll($list);
}
}
R
読み取りレコードfindメソッドは、最初の条件を満たすレコードを返します.
<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
public function index(){
$gu=M('myguests');
$data=$gu->where('firstname="lv"')->find();
dump($data);
}
}
<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
public function index(){
$gu=M('myguests');
$gu->where('firstname="lv"')->find();
dump($gu->data());
}
}
複数のデータを読み込むselectメソッドクエリが間違っている場合、selectの戻り値はfalseであり、クエリの結果が空の場合はNULLを返し、そうでない場合は2 D配列を返します.
<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
public function index(){
$gu = M("myguests");
$list = $gu->where('firstname="lv"')->order('id')->limit(5)->select();// 5
dump($list);
}
}
フィールド値の読み込み
<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
public function index(){
$gu = M("myguests");
$list = $gu->where('id=5')->getField('firstname');
dump($list);
}
}
<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
public function index(){
$gu = M("myguests");
$list = $gu->getField('id',true);//
dump($list);
}
}
<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
public function index(){
$gu = M("myguests");
$list = $gu->getField('id,firstname',5);// ,5
dump($list);
}
}
U
saveメソッド
<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
public function index(){
$gu = M("myguests");
$data['firstname']='liu';
$data['lastname']='hl';
$gu->where('id=5')->save($data);
}
}
<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
public function index(){
$gu = M("myguests");
$gu->firstname='liu';
$gu->lastname='hl';
$gu->where('id=6')->save();
}
}
フィールドの更新
<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
public function index(){
$gu = M("myguests");
$gu->where('id=6')->setField('firstname','wang');
}
}
複数フィールドの更新
<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
public function index(){
$gu = M("myguests");
$data=array('firstname'=>'lv','lastname'=>'huan');
$gu->where('id=1')->setField($data);
}
}
一方、統計フィールド(通常はデジタルタイプを指す)の更新には、setIncメソッドとsetDecメソッドも提供されます.
$User = M("User"); // User
$User->where('id=5')->setInc('score',3); // 3
$User->where('id=5')->setInc('score'); // 1
$User->where('id=5')->setDec('score',5); // 5
$User->where('id=5')->setDec('score'); // 1
3.2.3バージョンから、setIncとsetDecメソッドは遅延更新をサポートし、使用方法は以下の通りである.
$Article = M("Article"); // Article
$Article->where('id=5')->setInc('view',1); // 1
$Article->where('id=5')->setInc('view',1,60); // 1, 60 ( )
D
deleteメソッド
<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
public function index(){
$gu = M("myguests");
$gu->delete(2);// 2
}
}
deleteメソッドでは、単一のデータを削除したり、複数のデータを削除したりできます.これは、削除条件に依存します.たとえば、次のようにします.
$User = M("User"); // User
$User->where('id=5')->delete(); // id 5
$User->delete('1,2,5'); // 1,2 5
$User->where('firstname="lv"')->delete(); // firstname "lv"