首页 数据库 mysql教程 CI框架连接数据库配置操作以及多数据库操作

CI框架连接数据库配置操作以及多数据库操作

Jun 07, 2016 pm 03:11 PM
入门 快速 操作 数据库 框架 连接 配置

数据库快速入门例子代码 下面的内容将简单说明怎样使用数据库。更详细的信息请阅读各个函数的单独介绍页面。 初始化数据库类 下面的代码将依据你的数据库配置载入并初始化数据库类: $this-load-database(); 一旦被载入,你可以在任何地方像这样使用它: 注意

数据库快速入门例子代码
下面的内容将简单说明怎样使用数据库。更详细的信息请阅读各个函数的单独介绍页面。

初始化数据库类
下面的代码将依据你的数据库配置载入并初始化数据库类:

$this->load->database();
 
一旦被载入,你可以在任何地方像这样使用它:

注意: 如果你的所有页面均要求初始化数据库类,你可以让它自动加载。详见 数据库连接。

多结果标准查询(对象形式)
$query = $this->db->query('SELECT name, title, email FROM my_table');

foreach ($query->result() as $row)
{
  echo $row->title;
  echo $row->name;
  echo $row->email;
}

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)
{
  echo $row['title'];
  echo $row['name'];
  echo $row['email'];
}
 
上面的result_array()函数返回一个带下标的数组。例如:$row['title']

测试查询结果
如果你的查询可能不返回结果,我们建议你先使用 num_rows()函数来测试:

$query = $this->db->query("YOUR QUERY");

if ($query->num_rows() > 0)
{
  foreach ($query->result() as $row)
  {
  echo $row->title;
  echo $row->name;
  echo $row->body;
  }

单结果标准查询(对象形式)
$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) 
  VALUES (".$this->db->escape($title).", ".$this->db->escape($name).")";

$this->db->query($sql);

echo $this->db->affected_rows(); 
快捷查询
快捷查询类能为我们提供快速取得数据的途径:

$query = $this->db->get('table_name');

foreach ($query->result() as $row)
{
  echo $row->title;
}
 
上面的get()函数返回数据表中所有的结果。 快捷查询类 提供所有数据库操作的快捷函数。

快捷插入(insert)
$data = array(
  'title' => $title,
  'name' => $name,
  'date' => $date
  );

$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)”;

 如果文件保存完成后,通过站点访问即可看到查询出来的数据则说明多个数据库操作实现成功。

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它们
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

一键生成PPT!Kimi :让「PPT民工」先浪起来 一键生成PPT!Kimi :让「PPT民工」先浪起来 Aug 01, 2024 pm 03:28 PM

Kimi:一句话,十几秒钟,一份PPT就新鲜出炉了。PPT这玩意儿,可太招人烦了!开个碰头会,要有PPT;写个周报,要做PPT;拉个投资,要展示PPT;就连控诉出轨,都得发个PPT。大学更像是学了个PPT专业,上课看PPT,下课做PPT。或许,37年前丹尼斯・奥斯汀发明PPT时也没想到,有一天PPT竟如此泛滥成灾。吗喽们做PPT的苦逼经历,说起来都是泪。「一份二十多页的PPT花了三个月,改了几十遍,看到PPT都想吐」;「最巅峰的时候,一天做了五个PPT,连呼吸都是PPT」;「临时开个会,都要做个

CVPR 2024全部奖项公布!近万人线下参会,谷歌华人研究员获最佳论文奖 CVPR 2024全部奖项公布!近万人线下参会,谷歌华人研究员获最佳论文奖 Jun 20, 2024 pm 05:43 PM

北京时间6月20日凌晨,在西雅图举办的国际计算机视觉顶会CVPR2024正式公布了最佳论文等奖项。今年共有10篇论文获奖,其中2篇最佳论文,2篇最佳学生论文,另外还有2篇最佳论文提名和4篇最佳学生论文提名。计算机视觉(CV)领域的顶级会议是CVPR,每年都会吸引大量研究机构和高校参会。据统计,今年共提交了11532份论文,2719篇被接收,录用率为23.6%。根据佐治亚理工学院对CVPR2024的数据统计分析,从研究主题来看,论文数量最多的是图像和视频合成与生成(Imageandvideosyn

从裸机到700亿参数大模型,这里有份教程,还有现成可用的脚本 从裸机到700亿参数大模型,这里有份教程,还有现成可用的脚本 Jul 24, 2024 pm 08:13 PM

我们知道LLM是在大规模计算机集群上使用海量数据训练得到的,本站曾介绍过不少用于辅助和改进LLM训练流程的方法和技术。而今天,我们要分享的是一篇深入技术底层的文章,介绍如何将一堆连操作系统也没有的「裸机」变成用于训练LLM的计算机集群。这篇文章来自于AI初创公司Imbue,该公司致力于通过理解机器的思维方式来实现通用智能。当然,将一堆连操作系统也没有的「裸机」变成用于训练LLM的计算机集群并不是一个轻松的过程,充满了探索和试错,但Imbue最终成功训练了一个700亿参数的LLM,并在此过程中积累

AI在用 | AI制作独居女孩生活Vlog,3天狂揽上万点赞量 AI在用 | AI制作独居女孩生活Vlog,3天狂揽上万点赞量 Aug 07, 2024 pm 10:53 PM

机器之能报道编辑:杨文以大模型、AIGC为代表的人工智能浪潮已经在悄然改变着我们生活及工作方式,但绝大部分人依然不知道该如何使用。因此,我们推出了「AI在用」专栏,通过直观、有趣且简洁的人工智能使用案例,来具体介绍AI使用方法,并激发大家思考。我们也欢迎读者投稿亲自实践的创新型用例。视频链接:https://mp.weixin.qq.com/s/2hX_i7li3RqdE4u016yGhQ最近,独居女孩的生活Vlog在小红书上走红。一个插画风格的动画,再配上几句治愈系文案,短短几天就能轻松狂揽上

细数RAG的12个痛点,英伟达高级架构师亲授解决方案 细数RAG的12个痛点,英伟达高级架构师亲授解决方案 Jul 11, 2024 pm 01:53 PM

检索增强式生成(RAG)是一种使用检索提升语言模型的技术。具体来说,就是在语言模型生成答案之前,先从广泛的文档数据库中检索相关信息,然后利用这些信息来引导生成过程。这种技术能极大提升内容的准确性和相关性,并能有效缓解幻觉问题,提高知识更新的速度,并增强内容生成的可追溯性。RAG无疑是最激动人心的人工智能研究领域之一。有关RAG的更多详情请参阅本站专栏文章《专补大模型短板的RAG有哪些新进展?这篇综述讲明白了》。但RAG也并非完美,用户在使用时也常会遭遇一些「痛点」。近日,英伟达生成式AI高级解决

iOS 18 新增'已恢复”相册功能 可找回丢失或损坏的照片 iOS 18 新增'已恢复”相册功能 可找回丢失或损坏的照片 Jul 18, 2024 am 05:48 AM

苹果公司最新发布的iOS18、iPadOS18以及macOSSequoia系统为Photos应用增添了一项重要功能,旨在帮助用户轻松恢复因各种原因丢失或损坏的照片和视频。这项新功能在Photos应用的"工具"部分引入了一个名为"已恢复"的相册,当用户设备中存在未纳入其照片库的图片或视频时,该相册将自动显示。"已恢复"相册的出现为因数据库损坏、相机应用未正确保存至照片库或第三方应用管理照片库时照片和视频丢失提供了解决方案。用户只需简单几步

又一Sora级选手来炸街!我们拿它和Sora、可灵PK了下 又一Sora级选手来炸街!我们拿它和Sora、可灵PK了下 Aug 02, 2024 am 10:19 AM

当Sora「千呼万唤」不出来时,OpenAI的对手们却纷纷祭出大杀器来炸街。Sora再不开放使用,真的要被偷家了!今日,旧金山初创公司LumaAI打出一手王牌,推出新一代AI视频生成模型DreamMachine。人人免费可用。据介绍,该模型能够根据简单的文本描述生成高质量、逼真视频,效果堪比Sora。消息一出,大量用户挤进官网尝鲜。尽管官方声称该模型能在短短两分钟内生成120帧视频,但由于访问量激增,许多用户在官网中苦苦等待数小时。Luma的产品增长主管BarkleyDai不得不在Discord

PHP 框架的学习曲线与其他语言框架相比如何? PHP 框架的学习曲线与其他语言框架相比如何? Jun 06, 2024 pm 12:41 PM

PHP框架的学习曲线取决于语言熟练度、框架复杂性、文档质量和社区支持。与Python框架相比,PHP框架的学习曲线更高,而与Ruby框架相比,则较低。与Java框架相比,PHP框架的学习曲线中等,但入门时间较短。

See all articles