Рубрики
Uncategorized

Использование Yii ЯВЛЯЮТСЯ

Автор оригинала: David Wong.

Поскольку я использовал CI, когда впервые начал изучать PHP-фреймворк, а затем начал связываться с Yii, когда не был знаком со всеми видами Baidu, потому что мой английский очень слаб, это заняло много времени.

Если вы хорошо владеете английским языком, вы можете прочитать исходный адрес http://www. yii framework.com/doc/guide/1.1/en/database.ar напрямую.

I. Для одной модели новостей Существует множество методов запроса, таких как возврат объекта или массива объектов.

$post = News:: model () - > find ($condition, $params); // query by specified conditions
$post = News:: model () - > findByPk ($postID, $condition, $params); /// Query through the primary key of the news table
$post = News:: model () - > findByAttributes ($attributes, $condition, $params); /// Continue querying by specifying key values
$post = News:: model () - > findBySql ($sql, $params); // Query through SQL statements

А теперь давайте посмотрим на это. find() Метод: Например, нам нужно выполнить запрос. nid по 5 Эти данные

$post=News::model()->find('nid=:newsID', array(':newsID'=>5));

условие $условие Это мы. sql Li где Детали, переданные параметры параметры Передают его дальше. Обратите внимание, что имени предшествует добавление. ": " .

оставайся Yii Мы тоже можем это использовать. CDbCriteria Класс для построения запросов, если мы запрашиваем nid по 5 название Значение, CDbCriteria Он структурирован следующим образом:

$criteria = new CDbCriteria;
$criteria - > select ='title'; // Query only the corresponding title field, do not return the entire data in this sentence
$criteria->condition='nid=:newsID';
$criteria->params=array(':newsID'=>5);
News = News:: model () - > find ($criteria); // params is not required

Это также может быть написано следующим образом:

$news = News::model()->find(array(
  'select'=>'title',
  'condition'=>'nid=:newsID',
  'params'=>array(':newsID'=>5),
)); 

А теперь давайте посмотрим на это. findByAttributes() Метод, возврат Одна статья Запись:

News::model()->findByAttributes(array('title'=>'abc'));

Параметр равен единице. Пары Ключ-значение Из массива

Есть и другие способы:

$admin=Admin::model()->findAll($condition,$params);

Метод основан на одном условии Запросе/| агрегате , например:

findAll("username=:name",array(":name"=>$username));

Запрос по первичному ключу:

$admin=Admin::model()->findAllByPk($postIDs,$condition,$params); 
findAllByPk($id,"name like ':name' and age=:age" ,array(':name'=>$name,'age'=>$age));

Метод основан на Первичном ключе Для запроса коллекции можно использовать Несколько первичных ключей , например: findAllByPk(массив(1,2)) ;

запрос Все Устанавливает удовлетворяющие условиям:

$admin=Admin::model()->findAllByAttributes($attributes,$condition,$params); 

Метод основан на условии Запросе один агрегат Это может быть несколько условий, размещать условия в массиве и запрашивать их по атрибутам, например sql Из где Более одного из них и , например: findAllByAttributes(массив('имя пользователя'=>'администратор'));

SELECT *  from one_table where username = 'admin' and password ='123456';

Соответствующая AR-модель Запрос выглядит следующим образом

Admin::model()->findAllByAttributes(array('username'=>'admin', 'password'=>'123456')); 

принять SQL Запрос оператора Все Результаты, удовлетворяющие условиям

$admin=Admin::model()->findAllBySql($sql,$params); 

Метод основан на SQL Оператор запрашивает массив, например:

findAllBySql("select *from admin where username=:name",array(':name'=>'admin'));

принять SQL Запрос оператора Одна статья Результаты, удовлетворяющие условиям

$admin=Admin::model()->findBySql($sql,$params); 

Метод основан на SQL Оператор запрашивает массив, например:

findBySql("select *from admin where username=:name",array(':name'=>'admin'));

2. Количество запросов для определения того, являются ли результаты запроса

1. Этот метод запрашивает набор в соответствии с его условием. Сколько Записей, верните один int Номер типа, например

$n=Post::model()->count($condition,$params);
count("username=:name",array(":name"=>$username));    

2. Метод основан на SQL Операторном запросе, В коллекции есть Сколько Записей, возвращающих один int Номер типа, например

$n=Post::model()->countBySql($sql,$params); 
countBySql("select *from admin where username=:name",array(':name'=>'admin')); 

3. Этот метод основан на массиве условных запросов. Есть ли какие-либо Данные, если таковые имеются, возвращающие значение true В противном случае их не удалось найти:

$exists=Post::model()->exists($condition,$params);

3. Способ добавления

$admin=new Admin;
$admin->username=$username;
$admin->password=$password;
if($admin->save()>0){
  Echo "add success"; 
}else{
  Echo "add failure"; 
}

IV. Способ модификации

1、 обновить все()

Post::model()->updateAll($attributes,$condition,$params); 

$count = Admin::model()->updateAll(array('username'=>'11111','password'=>'11111'),'password=:pass',array(':pass'=>'1111a1'));
if($count>0){
  Echo "successful modification"; 
}else{     
  Echo "failed to modify"; 
}

2、 updateByPk()

Post::model()->updateByPk($pk,$attributes,$condition,$params); 

// $count = Admin::model()->updateByPk(1,array('username'=>'admin','password'=>'admin')); 
$count = Admin::model()->updateByPk(array(1,2),array('username'=>'admin','password'=>'admin'),'username=:name',array(':name'=>'admin')); 
if($count>0){     
  Echo "successful modification"; 
}else{     
  Echo "failed to modify"; 
}

$pk Представляет первичный ключ, который может быть либо набором, либо набором. $атрибуты Представляет набор полей, подлежащих изменению. $условие Условия представления, $параметры Входное значение

3、 счетчики обновлений()

Post::model()->updateCounters($counters,$condition,$params); 

$count =Admin::model()->updateCounters(array('status'=>1),'username=:name',array(':name'=>'admin')); 
if($count>0){     
  Echo "successful modification"; 
}else{     
  Echo "failed to modify"; 
}

массив("статус"=>1) Представляет таблицу администратор на основе условий имя пользователя= "администратор" Все запрошенные результаты статус Поля добавляются самостоятельно 1

V. Способ удаления

1、 удалить все()

Post::model()->deleteAll($condition,$params);

$count = Admin::model()->deleteAll('username=:name and password=:pass',array(':name'=>'admin',':pass'=>'admin'));             
$id=1,2,3;
DeleteAll ('id in (". $id.")'); and // delete ID for these data 
if($count>0){     
  Echo "Delete successfully"; 
}else{     
  Echo "Delete failed"; 
}

2、 deleteByPk()

Post::model()->deleteByPk($pk,$condition,$params); 

// $count = Admin::model()->deleteByPk(1); 
$count = Admin::model()->deleteByPk(array(1,2),'username=:name',array(':name'=>'admin')); 
if($count>0){     
  Echo "Delete successfully"; 
}else{     
  Echo "Delete failed"; 
}

Yii AR Есть более простые операции, которые вы можете постепенно испытать в использовании.