CI框架连接数据库配置操作以及多数据库操作
数据库快速入门例子代码 下面的内容将简单说明怎样使用数据库。更详细的信息请阅读各个函数的单独介绍页面。 初始化数据库类 下面的代码将依据你的数据库配置载入并初始化数据库类: $this-load-database(); 一旦被载入,你可以在任何地方像这样使用它: 注意
数据库快速入门例子代码
下面的内容将简单说明怎样使用数据库。更详细的信息请阅读各个函数的单独介绍页面。
初始化数据库类
下面的代码将依据你的数据库配置载入并初始化数据库类:
$this->load->database();
一旦被载入,你可以在任何地方像这样使用它:
注意: 如果你的所有页面均要求初始化数据库类,你可以让它自动加载。详见 数据库连接。
多结果标准查询(对象形式)
$query = $this->db->query('SELECT name, title, email FROM my_table');
foreach ($query->result() as $row)
{
}
echo 'Total Results: ' . $query->num_rows();
上面的result()函数返回一个对象的数组。例如:$row->title
多结果标准查询(数组形式)
$query = $this->db->query('SELECT name, title, email FROM my_table');
foreach ($query->result_array() as $row)
{
}
上面的result_array()函数返回一个带下标的数组。例如:$row['title']
测试查询结果
如果你的查询可能不返回结果,我们建议你先使用 num_rows()函数来测试:
$query = $this->db->query("YOUR QUERY");
if ($query->num_rows() > 0)
{
}
单结果标准查询(对象形式)
$query = $this->db->query('SELECT name FROM my_table LIMIT 1');
$row = $query->row();
echo $row->name;
上面的row()函数返回一个 对象。例如:$row->name
单结果标准查询(数组形式)
$query = $this->db->query('SELECT name FROM my_table LIMIT 1');
$row = $query->row_array();
echo $row['name'];
上面的row_array()函数返回一个 数组。例如:$row['name']
标准插入(insert)
$sql = "INSERT INTO mytable (title, name)
$this->db->query($sql);
echo $this->db->affected_rows();
快捷查询
快捷查询类能为我们提供快速取得数据的途径:
$query = $this->db->get('table_name');
foreach ($query->result() as $row)
{
}
上面的get()函数返回数据表中所有的结果。 快捷查询类 提供所有数据库操作的快捷函数。
快捷插入(insert)
$data = array(
$this->db->insert('mytable', $data);
// Produces: INSERT INTO mytable (title, name, date) VALUES ('{$title}', '{$name}', '{$date}')
数据库配置
CodeIgniter 有一个配置文件让你存放数据库连接值(username:用户名,password:密码,database name:数据库名,等等..). 配置文件位于以下路径:
application/config/database.php
配件文件存放在一个如下格式的一个多维数组里:
$db['default']['hostname'] = "localhost";
$db['default']['username'] = "root";
$db['default']['password'] = "";
$db['default']['database'] = "database_name";
$db['default']['dbdriver'] = "mysql";
$db['default']['dbprefix'] = "";
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = FALSE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = "";
$db['default']['char_set'] = "utf8";
$db['default']['dbcollat'] = "utf8_general_ci";
我们使用多维数组的原因是为了让你随意的存储多个连接值的设置。举例:如果你运行多个环境(development:开发、production:制作、test:测试 等等..),你能为每个环境建立独立的连接组,并在组直接进行切换。举例,设置一个"test"环境,你可以这样做:
$db['test']['hostname'] = "localhost";
$db['test']['username'] = "root";
$db['test']['password'] = "";
$db['test']['database'] = "database_name";
$db['test']['dbdriver'] = "mysql";
$db['test']['dbprefix'] = "";
$db['test']['pconnect'] = TRUE;
$db['test']['db_debug'] = FALSE;
$db['test']['cache_on'] = FALSE;
$db['test']['cachedir'] = "";
$db['test']['char_set'] = "utf8";
$db['test']['dbcollat'] = "utf8_general_ci";
那么,告诉系统使用"test"组,你可以设置位于配置文件中的变量:
$active_group = "test";
注意: "test"的名字是任意的,这可以让你自由设置,我们的主要连接默认使用"default"这个名字,当然,您可以基于您的项目为它起一个更有意义的名字。
Active Record
Active Record 类 可以通过数据库配置文件里的$active_record变量进行全局的设定(允许/禁止 TRUE/FALSE (boolean)). 如果你不用这个类,哪么你可以通过将这个变量值设置成FALSE来减少在数据库类初始化时对电脑资源的消耗。
$active_record = TRUE;
注意: 一些CodeIgniter的类,例如Sessions,在执行一些函数的时候需要Active Records的支持。
参数解析:
hostname - 数据库的主机名,通常位于本机,可以表示为 "localhost".
username - 需要连接到数据库的用户名.
password - 登陆数据库的密码.
database - 你需要连接的数据库名.
dbdriver - 数据库类型。如:mysql、postgres、odbc 等。必须为小写字母。
dbprefix - 当运行Active Record查询时数据表的前缀,它允许在一个数据库上安装多个CodeIgniter程序.
pconnect - TRUE/FALSE (boolean) - 使用持续连接.
db_debug - TRUE/FALSE (boolean) - 显示数据库错误信息.
cache_on - TRUE/FALSE (boolean) - 数据库查询缓存是否开启,详情请见数据库缓存类。
cachedir - 数据库查询缓存目录所在的服务器绝对路径。
char_set - 与数据库通信时所使用的字符集。
dbcollat - 与数据库通信时所使用的字符规则(character collation )。
port - 数据库端口号. 当前只用于 Postgres 驱动程序. 要使用这个值,你应该添加一行代码到数据库配置数组。
$db['default']['port'] = 5432;
提示: 并不是所有的值都是必须的,这取决与您所使用的数据库平台,如(MySQL, Postgres, 等.) 例如, 当你使用SQLite时,你不需要提供username 或 password, 数据库名字就是您数据库文件的路径. 以上内容假定您使用的是 MySQL 数据库.
连接你的数据库
有两种方法连接数据库:
自动连接
“自动连接” 功能将在每个一页面加载时被自动实例化数据库类。要启用“自动连接”,可在如下文件中的 library 数组里添加 database:
application/config/autoload.php
手动连接
如果仅仅是一部分页面要求数据库连接,你可以在你有需要的函数里手工添加如下代码或者在你的类里手工添加以供该类使用。
$this->load->database();
如果以上函数的第一个参数没有任何信息,它将会在系统指定的数据库配置文件中寻找,对多数人而言,这是一个首选的方法。
可用的参数
数据库连接值,用数组或DSN字符串传递。
TRUE/FALSE (boolean)。是否返回连接ID (参阅下面的“连接多数据库”)。
TRUE/FALSE (boolean)。是否启用 Active Record 类。默认设置为 TRUE。
手动连接到一个数据库
函数的第一个参数能够从你的配置文件中自由的指定你自定义的详细的数据库配置信息。或者你甚至可以不通过指定的配置文件来提交数据库的连接属性。样例:
要从你的配置文件中选择一个指定的数组你可以这么做:
$this->load->database('group_name');
group_name指的是存在于你的配置文件中的带有数据库连接信息的数组的名字。
要手动连接你要求的数据库你可以通过定义以下数组来实现:
$config['hostname'] = "localhost";
$config['username'] = "myusername";
$config['password'] = "mypassword";
$config['database'] = "mydatabase";
$config['dbdriver'] = "mysql";
$config['dbprefix'] = "";
$config['pconnect'] = FALSE;
$config['db_debug'] = TRUE;
$config['cache_on'] = FALSE;
$config['cachedir'] = "";
$config['char_set'] = "utf8";
$config['dbcollat'] = "utf8_general_ci";
$this->load->database($config);
想得到每一个配置属性的详细信息可点击 这里.
或者你可以以DSN的方式提交数据库配置信息。 DSN必然通过以下方式实现:
$dsn = 'dbdriver://username:password@hostname/database';
$this->load->database($dsn);
当用 DSN 字符串连接时,要覆盖配置默认值,则添加配置变量为查询字符串。
$dsn = 'dbdriver://username:password@hostname/database?char_set=utf8&dbcollat=utf8_general_ci&cache_on=true&cachedir=/path/to/cache';
$this->load->database($dsn);
连接多数据库
如果你需要同时连接多于一个的数据库,你可以用以下方式来实现:
$DB1 = $this->load->database('group_one', TRUE);
$DB2 = $this->load->database('group_two', TRUE);
注意:改变 "group_one" 和 "group_two" 为你指定了连接属性的组名 (或者通过上边说过的连接数组的数组名)。
通过设置函数的第二个参数为TRUE(boolean)来返回一个数据库对象。
当你使用这种方法,你将用对象名来执行操作命令而不是用户向导模式,也就是说,你将用以下方式执行数据库操作:
$DB1->query();
$DB1->result();
etc...
而不是:
$this->db->query();
$this->db->result();
etc...
重新连接 / 保持连接有效
当你正在进行一些重量级的PHP操作(例如处理图片)时,如果超出了数据库服务器的空闲超时限度,你应该考虑在执行更多查询之前使用reconnect()方法来向服务器发送ping命令,这样可以优雅地保持或重新建立连接。
$this->db->reconnect();
CI中的数据库操作
在system/application/config 文件夹和里面的config文件里已经配置了参数
$active_group = "default";
$db['default']['hostname'] = ""; hostname: 你的数据库的位置, 举例来说, 'localhost' 或 IP 地址
$db['default']['username'] = ""; username和password: 使用者名称和密码必须有充分的权限,允许你的网站存取数据库中的数据。
$db['default']['password'] = "";
$db['default']['database'] = ""; database: 你的数据库的名字, 举例来说, 'websits'
$db['default']['dbdriver'] = ""; dbdriver: 你正在使用的数据库的类型 - CI可受的有选项有MySQL、MySQLi、 Postgre SQL、ODBC和MS SQL
CI中第一次连接数据库,在控制器或模型的构造函数里输入以下语句
$this->load->database();
就不需要重复连接, 在那个控制器或模型就可以做任意多次的查询。
查询操作(等同select)
方法一:
$query = $this->db->get('sites'); //sites为表名
这是一个“select *”查询,目标是site表。换句话说,它取回所有的行
也可用下面这种方式写:
$this->db->from('sites');
$query = $this->db->get();
如果想要得到特定的列,而不是全部列,这样做:
$this->db->select('url','name','clientid');//'url','name','clientid'为列名
$query = $this->db->get('sites');
如果排序:
$this->db->select('url','name','clientid');//'url','name','clientid'为列名
$this->db->orderby("name", "desc");
$query = $this->db->get('sites');
如果想要限制返回的行数,比如想要最初五个结果
$this->db->select('url','name','clientid');//'url','name','clientid'为列名
$this->db->orderby("name", "desc");
$this->db->limit(5);
$query = $this->db->get('sites');
写where语句
==的情况
$this->db->where('clientid', '1'); //clientid属性 "1"为属性值
!=的情况
$this->db->where('url !=', 'www.mysite.com');
$this->db->where('id >', '3');
where后几个条件的可以写几个where 如
$this->db->where('url !=','www.mysite.com');
$this->db->where('id >', '3');
WHERE…OR的情况
$this->db->where('url !=','www.mysite.com' );
$this->db->orwhere('url !=','www.anothersite.com' );
连接表
$this->db->from('sites');
$this->db->join('people', 'sites.peopleid = people.id');
写个完整的查询
$this->db->select('url','name','clientid','people.surname AS client');
$this->db->where('clientid', '3');
$this->db->limit(5);
$this->db->from('sites');
$this->db->join('people', 'sites.clientid = people.id');
$this->db->orderby("name", "desc");
$query = $this->db->get();
方法二:
$this->db->query("SELECT id, name, url FROM sites WHERE 'type' = 'dynamic'");
可以像下面的语句一样写查询放条件
$condition = "client ='3' AND (type ='dynamic' OR type='static')";
$this->db->where($condition);
注意:双引号是定义变量的.不要混淆单引号和双引号.
显示查询结果
在查询语句后加上下面这句话
$query = $this->db->get();
如果有多个结果,他们被保存在$row对象中,可以用一个 foreach 循环:
foreach ($query->result() as $row)
{
print $row->url;
print $row->name;
print $row->client;
}
如果我们只想要一个结果,它可以作为一个对象被返回, 或在这里当做一个$row数组
if ($query->num_rows() > 0)
{
$row = $query->row_array();
print $row['url'];
print $row['name'];
print $row['client'];
}
增加数据(等同insert)
方法一:先建个数组,把要insert的值放在数组里.如下:其中url/name/clientid/type均为数据表属性值
$data = array(
'url' => 'www.mynewclient.com',
'name' => 'BigCo Inc',
'clientid' => '33',
'type' => 'dynamic'
);
然后使用$this->db->insert('sites', $data); 把数据增加到sites表中.
方法二:使用$this->db->set() 设置每一个值
$this->db->set('url', 'www.mynewclinet.com');
$this->db->set('name', 'BigCo Inc');
$this->db->set('clientid', '33');
$this->db->set('type', 'dynamic');
$this->db->insert('sites');
更新(等同update)
先定位要更新的记录,再update
$this->db->where('id', '1');
$this->db->update('sites', $data);
$this->db->set()方式也可以,和新增数据应该是一样的.
CI 提供几个函数检查数据库是否成功执行了相关操作。 最有用的:
$this->db->affected_rows();
在执行insert或update后应该返回 '1'-但是如果我正在update一批记录的话,可能返回更大的一个整数。
如果我正在insert一笔新的记录, 在实际产生它之前,我们并不知道ID具体的值。如果我需要引用新的记录的ID, 使用下列语句:
$new_id_number = $this->db->insert_id();
删除(等同delete)
$this->db->where('id', '2');
$this->db->delete('sites');
CI中使用多个数据库
第一步:创建数据库
现在假设我要操作的两个数据库分别为我本机MySQL数据库中的test数据库和test_other数据库。
test数据库中有一个t_news表(新闻表);
其SQL语句如下:
SQL复制代码
CREATE DATABASE /*!32312
IF NOT EXISTS*/`test` /*!40100 DEFAULT CHARACTER SET utf8 */;
USE `test`;
/*Table structure for table `t_news` */
DROP TABLE IF EXISTS `t_news`;
CREATE TABLE `t_news` (
`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '新闻ID',
`title` CHAR(255) NOT NULL COMMENT '新闻标题',
`sub_title` VARCHAR(500) DEFAULT NULL COMMENT '新闻副标题',
`content` TEXT COMMENT '新闻内容',
`create_time` DATETIME DEFAULT NULL COMMENT '创建时间',
`hits` INT(11) DEFAULT NULL COMMENT '点击率',
`author` CHAR(50) DEFAULT NULL COMMENT '作者',
`source` CHAR(255) DEFAULT NULL COMMENT '信息来源',
PRIMARY KEY (`id`)
) ENGINE=INNODB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8
CHECKSUM=1 DELAY_KEY_WRITE=1ROW_FORMAT=DYNAMIC
COMMENT='新闻表';
test_other数据库中有一个t_sys_user(系统管理员表);
其SQL语句如下:
SQL复制代码
CREATE DATABASE /*!32312
IF NOT EXISTS*/`test_other` /*!40100 DEFAULT CHARACTER SET utf8 */;
USE `test_other`;
/*Table structure for table `t_sys_user` */
DROP TABLE IF EXISTS `t_sys_user`;
CREATE TABLE `t_sys_user` (
`id` INT(11) NOT NULL COMMENT '管理员ID',
`role_id` INT(11) NOT NULL COMMENT '角色ID',
`login_name` VARCHAR(50) NOT NULL COMMENT '用户名称',
`password` VARCHAR(255) NOT NULL COMMENT '密码',
`is_admin` TINYINT(1) NOT NULL DEFAULT '0' COMMENT '是否为管理员(0:否
1:是)',
`create_time` DATETIME DEFAULT NULL COMMENT '创建时间',
`last_login` DATETIME DEFAULT NULL COMMENT '上次登录时间',
`login_num` INT(11) DEFAULT '0' COMMENT '登录次数',
`last_ip` CHAR(15) DEFAULT NULL COMMENT '上次登录IP',
`status` TINYINT(1) NOT NULL DEFAULT '0' COMMENT '登录状态(0:未登录
1:已登录)',
`is_locked` TINYINT(1) NOT NULL DEFAULT '0' COMMENT '是否被锁定(0:否
1:是 注:锁定时不允许登录)',
PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8
CHECKSUM=1 DELAY_KEY_WRITE=1 ROW_FORMAT=DYNAMIC
COMMENT='系统管理员表';
打开./application/config/目录中的database.php文件,在原来的内容中增加另外一个数据库配置信息。文件内容如下:
PHP复制代码
if ( ! defined('BASEPATH')) exit('No
direct script access allowed');
/*
| -------------------------------------------------------------------
| DATABASE CONNECTIVITY SETTINGS
| -------------------------------------------------------------------
| This file will contain the settings needed to access your database.
|
| For complete instructions please consult the 'Database Connection'
| page of the User Guide.
|
| -------------------------------------------------------------------
| EXPLANATION OF VARIABLES
| -------------------------------------------------------------------
*/
$active_group = 'default';
$active_record = TRUE;
$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'root';
$db['default']['password'] = '111111';
$db['default']['database'] = 'test';
$db['default']['dbdriver'] = 'mysql';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = FALSE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;
//Additional database
$db['additional']['hostname'] = 'localhost';
$db['additional']['username'] = 'root';
$db['additional']['password'] = '111111';
$db['additional']['database'] = 'test_other';
$db['additional']['dbdriver'] = 'mysql';
$db['additional']['dbprefix'] = '';
$db['additional']['pconnect'] = FALSE;
$db['additional']['db_debug'] = TRUE;
$db['additional']['cache_on'] = FALSE;
$db['additional']['cachedir'] = '';
$db['additional']['char_set'] = 'utf8';
$db['additional']['dbcollat'] = 'utf8_general_ci';
$db['additional']['swap_pre'] = '';
$db['additional']['autoinit'] = TRUE;
$db['additional']['stricton'] = FALSE;
/* End of file database.php */
/* Location: ./application/config/database.php */
第三步:编写控制器
在./application/controllers/目录下创建名为dbc.php的控制器文件,其内容如下:
PHP复制代码
if ( ! defined('BASEPATH')) exit('No
direct script access allowed');
/**
* @package CI2.1.0
* @author Longde
* @version 1.0
*/
// ------------------------------------------------------------------------
header('Content-Type:text/html; charset=utf-8');
/**
* 数据库控制器
* 该控制器的主要做用是进行数据库方面的操作。
*
* @category Controllers
* @author Longde
*/
class Dbc extends CI_Controller {
/**
* 测试在同一个项目中同时使用多个数据库进行操作
* @access public
* @return array
*/
public function index()
{
//按照CI手册中的说法:如果需要同时连接多个数据库,则采用
//$DB1 = $this->load->database('group_one',TRUE);
//$DB2 = $this->load->database('group_two',TRUE);
//注意:confing/database.php中的$db[xxxx]['pconnect'] = FALSE
$db1 = $this->load->database('default',TRUE);//注意第一个参数:值与配置文件中的第一个索引对应
$db2 = $this->load->database('additional', TRUE);//注意第一个参数:值与配置文件中的第一个索引对应
//下面开始进行操作
//首先,在第一个数据库test的t_news表中插入数据
$data1 = array(
'title' => '测试在CI框架中同时操作多个数据库',
'sub_title' => 'CI框架允许使用多个数据库进行操作。具体的内容请查看CI手册......',
'content' => '如果你需要同时连接多于一个的数据库,你可以用以下方式来实现:$DB1
= $this->load->database(\'group_one\', TRUE);$DB2 = $this->load->database(\'group_two\', TRUE);注意:改变 "group_one" 和 "group_two" 为你指定了连接属性的组名 (或者通过上边说过的连接数组的数组名)。',
'create_time' => date('Y-m-d
H:i:s'),
'author' => 'Longde',
'source' => '原创'
);
//插入之前先判断是否已存在
$db1->select('id');
$id1 = $db1->get_where('t_news',array('title' => $data1['title']))->result_array();
if(empty($id1))
{
//插入数据
$db1->insert('t_news',$data1);
//获取刚才插入数据时生成的ID值
$id1 = $db1->insert_id();
}
else
{
$id1 = $id1[0]['id'];
}
//从数据库中读取数据
$result1 = $db1->get_where('t_news',array('id' => $id1))->result_array();
//格式化输出刚才的读取结果
echo ""
print_r($result1);
//其次,在第二个数据库test_other的t_sys_user表中插入数据
$data2 = array(
'role_id' => 1,
'login_name' => 'admin',
'password' => md5('admin'),
'is_admin' => 1,
'create_time' => date('Y-m-d
H:i:s'),
'status' => 0,
'is_locked' => 0
);
//插入之前先判断是否已存在
$db2->select('id');
$id2 = $db2->get_where('t_sys_user',array('login_name' => $data2['login_name']))->result_array();
if(empty($id2))
{
//插入数据
$db2->insert('t_sys_user',$data2);
//获取刚才插入数据时生成的ID值
$id2 = $db2->insert_id();
}
else
{
$id2 = $id2[0]['id'];
}
//从数据库中读取刚才插入的数据
$result2 = $db2->get_where('t_sys_user',array('id' => $id2))->result_array();
//格式化输出刚才的读取结果
echo ""
print_r($result2);
}
// ------------------------------------------------------------------------
}
/* End of file dbc.php */
/* Location: ./application/controllers/dbc.php */
说明一下,dbc.php文件中的index()方法主要是对两个数据库分别进行了插入操作,但在插入操作之前,先对该条记录是否存在进行了判断,如果存在则不进行插入操作并直接查询出结果;否则先进行插入,然后再查询。
值得注意的是,数据库配置文件database.php文件中的$db['group_name']['pconnect']值需要设置为FALSE,其次$db['group_name']中的索引group_name对应的就是“$DB1 = $this->load->database('group_name',TRUE)”;
如果文件保存完成后,通过站点访问即可看到查询出来的数据则说明多个数据库操作实现成功。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









キミ: たった 1 文の PPT がわずか 10 秒で完成します。 PPTはとても面倒です!会議を開催するには PPT が必要であり、週次報告書を作成するには PPT が必要であり、投資を勧誘するには PPT を提示する必要があり、不正行為を告発するには PPT を送信する必要があります。大学は、PPT 専攻を勉強するようなものです。授業中に PPT を見て、授業後に PPT を行います。おそらく、デニス オースティンが 37 年前に PPT を発明したとき、PPT がこれほど普及する日が来るとは予想していなかったでしょう。 PPT 作成の大変な経験を話すと涙が出ます。 「20 ページを超える PPT を作成するのに 3 か月かかり、何十回も修正しました。PPT を見ると吐きそうになりました。」 「ピーク時には 1 日に 5 枚の PPT を作成し、息をすることさえありました。」 PPTでした。」 即席の会議をするなら、そうすべきです

北京時間6月20日早朝、シアトルで開催されている最高の国際コンピュータビジョンカンファレンス「CVPR2024」が、最優秀論文やその他の賞を正式に発表した。今年は、最優秀論文 2 件と学生優秀論文 2 件を含む合計 10 件の論文が賞を受賞しました。また、最優秀論文ノミネートも 2 件、学生優秀論文ノミネートも 4 件ありました。コンピュータービジョン (CV) 分野のトップカンファレンスは CVPR で、毎年多数の研究機関や大学が集まります。統計によると、今年は合計 11,532 件の論文が投稿され、2,719 件が採択され、採択率は 23.6% でした。ジョージア工科大学による CVPR2024 データの統計分析によると、研究テーマの観点から最も論文数が多いのは画像とビデオの合成と生成です (Imageandvideosyn

LLM が大量のデータを使用して大規模なコンピューター クラスターでトレーニングされていることはわかっています。このサイトでは、LLM トレーニング プロセスを支援および改善するために使用される多くの方法とテクノロジが紹介されています。今日、私たちが共有したいのは、基礎となるテクノロジーを深く掘り下げ、オペレーティング システムさえ持たない大量の「ベア メタル」を LLM のトレーニング用のコンピューター クラスターに変える方法を紹介する記事です。この記事は、機械がどのように考えるかを理解することで一般的な知能の実現に努めている AI スタートアップ企業 Imbue によるものです。もちろん、オペレーティング システムを持たない大量の「ベア メタル」を LLM をトレーニングするためのコンピューター クラスターに変換することは、探索と試行錯誤に満ちた簡単なプロセスではありませんが、Imbue は最終的に 700 億のパラメータを備えた LLM のトレーニングに成功しました。プロセスが蓄積する

Machine Power Report 編集者: Yang Wen 大型モデルや AIGC に代表される人工知能の波は、私たちの生活や働き方を静かに変えていますが、ほとんどの人はまだその使い方を知りません。そこで、直感的で興味深く、簡潔な人工知能のユースケースを通じてAIの活用方法を詳しく紹介し、皆様の思考を刺激するコラム「AI in Use」を立ち上げました。また、読者が革新的な実践的な使用例を提出することも歓迎します。ビデオリンク: https://mp.weixin.qq.com/s/2hX_i7li3RqdE4u016yGhQ 最近、Xiaohongshu で一人暮らしの女の子の生活 vlog が人気になりました。イラスト風のアニメーションといくつかの癒しの言葉を組み合わせれば、数日で簡単に習得できます。

検索拡張生成 (RAG) は、検索を使用して言語モデルを強化する手法です。具体的には、言語モデルは回答を生成する前に、広範な文書データベースから関連情報を取得し、この情報を使用して生成プロセスをガイドします。このテクノロジーにより、コンテンツの精度と関連性が大幅に向上し、幻覚の問題を効果的に軽減し、知識の更新速度が向上し、コンテンツ生成の追跡可能性が向上します。 RAG は間違いなく、人工知能研究の中で最もエキサイティングな分野の 1 つです。 RAGについて詳しくは、当サイトのコラム記事「大型モデルの欠点を補うことに特化したRAGの新展開とは?」を参照してください。このレビューはそれを明確に説明しています。」しかし、RAG は完璧ではなく、ユーザーはそれを使用するときにいくつかの「問題点」に遭遇することがよくあります。最近、NVIDIA の生成 AI 高度なソリューション

Apple の最新リリースの iOS18、iPadOS18、および macOS Sequoia システムでは、さまざまな理由で紛失または破損した写真やビデオをユーザーが簡単に回復できるように設計された重要な機能が写真アプリケーションに追加されました。この新機能では、写真アプリのツール セクションに「Recovered」というアルバムが導入され、ユーザーがデバイス上に写真ライブラリに含まれていない写真やビデオがある場合に自動的に表示されます。 「Recovered」アルバムの登場により、データベースの破損、カメラ アプリケーションが写真ライブラリに正しく保存されない、または写真ライブラリを管理するサードパーティ アプリケーションによって失われた写真やビデオに対する解決策が提供されます。ユーザーはいくつかの簡単な手順を実行するだけで済みます

ソラが出てこられなかったとき、OpenAI の敵対者は武器を使用して街路を破壊しました。 Sora を使用しないと本当に盗まれます。本日、サンフランシスコのスタートアップ LumaAI が切り札となり、新世代の AI ビデオ生成モデル DreamMachine を発表しました。無料で誰でも利用できます。レポートによると、このモデルは、Sora に匹敵する効果を持つ、簡単なテキストの説明に基づいて、高品質でリアルなビデオを生成できます。このニュースが発表されるとすぐに、多くのユーザーがそれを試してみようと公式ウェブサイトに殺到しました。関係者は、このモデルはわずか 2 分で 120 フレームのビデオを生成できると主張していますが、多くのユーザーはアクセス数が急増したため、公式 Web サイトで何時間も待たされています。 Luma の製品成長責任者である BarkleyDai 氏は Discord についてコメントする必要がありました

PHP フレームワークの学習曲線は、言語熟練度、フレームワークの複雑さ、ドキュメントの品質、コミュニティのサポートによって異なります。 PHP フレームワークの学習曲線は、Python フレームワークと比較すると高く、Ruby フレームワークと比較すると低くなります。 Java フレームワークと比較すると、PHP フレームワークの学習曲線は中程度ですが、開始までの時間は短くなります。
