CodeIgniter 연구 노트 항목 4 - CI의 데이터베이스 작업
CI 데이터베이스 구성 파일은 /application/config/database.php입니다
[code]// 可以创建多个数据库连接配置,通过$active_group选择使用哪个数据库连接 $active_group = 'default'; // 配置是否加载查询构建类,默认为TRUE,通常保持默认值 $query_builder = TRUE; // 数据库连接配置,可以有多个连接配置,索引需要区分开 $db['default'] = array( 'dsn' => '', 'hostname' => 'localhost', // ip 'username' => 'root', // 用户名 'password' => '123456', // 密码 'database' => 'workplatform', // 数据库名称 'dbdriver' => 'mysqli', // 使用什么库访问数据库 // 目前可以支持cubrid,ibase,mssql,mysql,mysqli,oci8 // odbc, pdo, postgre, sqlite, sqlite3, sqlsrv 'dbprefix' => '', // 表前缀 'pconnect' => FALSE, 'db_debug' => TRUE, 'cache_on' => FALSE, // 是否启用查询缓存 'cachedir' => '', // 查询缓存目录 'char_set' => 'utf8', 'dbcollat' => 'utf8_general_ci', 'swap_pre' => '', // 交换表前缀,表前缀的替换写法 'encrypt' => FALSE, 'compress' => FALSE, 'stricton' => FALSE, 'failover' => array(), 'save_queries' => TRUE
데이터베이스를 사용하기 전에 로더를 사용하여 데이터베이스 개체를 로드해야 합니다
[code]$this->load->database();
로드가 완료된 후 $this->db는 이 데이터베이스 개체입니다. 모든 후속 데이터 작업은 이 개체의 메서드를 호출하여 수행됩니다.
먼저 SQL 문을 정의합니다.
[code]$sql = 'SELECT * FROM user';
db 객체의 쿼리 메소드를 호출하여 쿼리합니다.
[code]$result = $this->db->query($sql);
반환 값 $result는 객체이며, 해당 메소드를 호출하여 다른 형식이 반환될 수 있습니다. >
은 객체 배열이거나, 연관 배열 쿼리 결과를 얻으려면 result_array( ) 메서드를 호출하세요.[code]$users = $result->result();
$users
row() 메서드를 호출하면 첫 번째 결과를 반환합니다. 레코드 또는 객체 형태의 첫 번째 레코드
[code]$users = $result->result_array();
데이터베이스 작업을 실행하기 전에. 쿼리하기 전에
[code]$users = $result->row();
[code]$this->db->affected_rows(); // 获取影响的行数 $this->db->insert_id(); // 获取插入数据的id
$this->db
$this->load->database()
들어오는 배열의 요소가 SQL의 ?를 차례로 대체하여 실제 SQL 문을 생성합니다.
[code]$autoload['libraries'] = array('database');
[code]$data[0] = 'dj'; $data[1] = '123456'; $sql = "INSERT INTO user (account, password, usertype, username) VALUES ('1231', ?, '1', ?)"; $result = $this->db->query($sql, $data);
데이터베이스 연결
데이터베이스에 연결하는 방법에는 두 가지가 있습니다. 자동 연결
"자동 연결" 기능은 데이터베이스가 나올 때마다 사용할 수 있습니다. 클래스는 페이지가 로드될 때 자동으로 인스턴스화됩니다. "자동 연결"을 활성화하려면 application/config/autoload.php의 라이브러리 배열에 데이터베이스:
를 추가하세요.手动连接
如果你只有一部分页面需要数据库连接,你可以在那些有需要的函数里手工添加 如下代码来连接数据库,或者写在类的构造函数里,让整个类都可以访问:
[code]$this->load->database();
如果 database() 函数没有指定第一个参数,它将使用数据库配置文件中 指定的组连接数据库。对大多数人而言,这是首选方案。
可用的参数
数据库连接值,用数组或DSN字符串传递;
[code]TRUE/FALSE (boolean) - 是否返回连接ID(参考下文的“连接多数据库”); TRUE/FALSE (boolean) - 是否启用查询构造器类,默认为 TRUE 。
这个函数的第一个参数是可选的,被用来从你的配置文件中 指定一个特定的数据库组,甚至可以使用没有在配置文件中定义的 数据库连接值。下面是例子:
从你的配置文件中选择一个特定分组:
[code]$this->load->database('group_name');
连接一个完全手动指定的数据库,可以传一个数组参数:
[code]$config['hostname'] = 'localhost'; $config['username'] = 'myusername'; $config['password'] = 'mypassword'; $config['database'] = 'mydatabase'; $config['dbdriver'] = 'mysqli'; $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);
注解
对于 PDO 驱动,你应该使用 $config[‘dsn’] 取代 ‘hostname’ 和 ‘database’ 参数:
[code]$config['dsn'] = 'mysql:host=localhost;dbname=mydatabase';
或者你可以使用数据源名称(DSN,Data Source Name)作为参数,DSN 的格式必须类似于下面这样:
[code]$dsn = 'dbdriver://username:password@hostname/database'; $this->load->database($dsn);
当用 DSN 字符串连接时,要覆盖默认配置,可以像添加查询字符串一样添加配置变量。
[code]$dsn = 'dbdriver://username:password@hostname/database?char_set=utf8&dbcollat=utf8_general_ci&cache_on=true&cachedir=/path/to/cache'; $this->load->database($dsn);
注意:将 “group_one” 和 “group_two” 修改为你要连接的组名称 (或者像上面介绍的那样传入连接值数组)
第二个参数 TRUE 表示函数将返回数据库对象。
注解
当你使用这种方式连接数据库时,你将通过你的对象名来执行数据库命令, 而不再是通过这份指南中通篇介绍的,就像下面这样的语法了:
[code]$this->db->query(); $this->db->result(); etc...
取而代之的,你将这样执行数据库命令:
[code]$DB1->query(); $DB1->result(); etc...
注解
如果你只是需要切换到同一个连接的另一个不同的数据库,你没必要创建 独立的数据库配置,你可以像下面这样切换到另一个数据库:
[code]$this->db->db_select($database2_name);
当你在处理一些重量级的 PHP 操作时(例如处理图片),如果超过了数据库的超时值, 你应该考虑在执行后续查询之前先调用 reconnect() 方法向数据库发送 ping 命令, 这样可以优雅的保持连接有效或者重新建立起连接。
[code]$this->db->reconnect();
手动关闭连接
虽然 CodeIgniter 可以智能的管理并自动关闭数据库连接,你仍可以用下面的方法显式的关闭连接:
[code]$this->db->close();
查询
[code]$this->db->query();
要提交一个查询,用以下函数:
[code]$this->db->query('YOUR QUERY HERE');
query() 函数以object(对象)的形式返回一个数据库结果集. 当使用 “read” 模式来运行查询时, 你可以使用“显示你的结果集”来显示查询结果; 当使用 “write” 模式来运行查询时, 将会仅根据执行的成功或失败来返回 TRUE 或 FALSE. 当你需要将返回的结果赋值给一个自定义变量的时候, 你可以这样操作:
[code]$query = $this->db->query('YOUR QUERY HERE'); $this->db->simple_query();
手工添加数据库前缀
如果你需要为一个数据库手工添加前缀,你可以使用以下步骤。
[code]$this->db->dbprefix('tablename'); // outputs prefix_tablename
保护标识符
在许多数据库中,保护表(table)和字段(field)的名称是明智的,例如在MySQL中使用反引号。Active Record的查询都已被自动保护,然而,如果您需要手动保护一个标识符,您也可以这样:
[code]$this->db->protect_identifiers('table_name');
这个函数也会给你的表名添加一个前缀,它假定在你的数据库配置文件中已指定了一个前缀。可通过将第二个参数设置为TRUE (boolen) 启用前缀:
[code]$this->db->protect_identifiers('table_name', TRUE);
将数据转义以后提交到你的数据库是非常好的安全做法,CodeIgniter 提供了 3 个函数帮助你完成这个工作。
$this->db->escape()
这个函数将会确定数据类型,以便仅对字符串类型数据进行转义。并且,它也会自动把数据用单引号括起来,所以你不必手动添加单引号,用法如下:
[code]$sql = "INSERT INTO table (title) VALUES(".$this->db->escape($title).")";
$this->db->escape_str()
此函数将忽略数据类型对传入数据进行转义。更多时候你将使用上面的函数而不是这个。这个函数的使用方法是:
[code]$sql = "INSERT INTO table (title) VALUES('".$this->db->escape_str($title)."')"; $this->db->escape_like_str() This method should be used when strings are to be used in LIKE conditions so that LIKE wildcards ('%', '_') in the string are also properly escaped. $search = '20% raise'; $sql = "SELECT id FROM table WHERE column LIKE '%".$this->db->escape_like_str($search)."%'";
封装查询
封装,通过让系统为你组装各个查询语句,能够简化你的查询语法。参加下面的范例:
[code]$sql = "SELECT * FROM some_table WHERE id = ? AND status = ? AND author = ?"; $this->db->query($sql, array(3, 'live', 'Rick'));
查询语句中的问号会自动被查询函数中位于第二个参数位置的数组中的值所替代。
以上就是CodeIgniter学习笔记 Item4--CI中的数据库操作的内容,更多相关内容请关注PHP中文网(www.php.cn)!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

CodeIgniter에서 사용자 정의 미들웨어를 구현하는 방법 소개: 현대 웹 개발에서 미들웨어는 애플리케이션에서 중요한 역할을 합니다. 요청이 컨트롤러에 도달하기 전이나 후에 일부 공유 처리 논리를 수행하는 데 사용할 수 있습니다. 널리 사용되는 PHP 프레임워크인 CodeIgniter는 미들웨어 사용도 지원합니다. 이 글에서는 CodeIgniter에서 사용자 정의 미들웨어를 구현하는 방법을 소개하고 간단한 코드 예제를 제공합니다. 미들웨어 개요: 미들웨어는 일종의 요청입니다.

CodeIgniter 미들웨어: 애플리케이션 응답성 및 페이지 렌더링 가속화 개요: 웹 애플리케이션의 복잡성과 상호 작용이 계속 증가함에 따라 개발자는 애플리케이션 성능과 응답성을 향상시키기 위해 보다 효율적이고 확장 가능한 솔루션을 사용해야 합니다. CodeIgniter(CI)는 많은 유용한 기능을 제공하는 경량 PHP 기반 프레임워크이며 그 중 하나가 미들웨어입니다. 미들웨어는 요청이 컨트롤러에 도달하기 전후에 수행되는 일련의 작업입니다. 이 기사에서는 사용 방법을 소개합니다.

CodeIgniter 프레임워크에서 데이터베이스 쿼리 빌더(QueryBuilder)를 사용하는 방법 소개: CodeIgniter는 웹 애플리케이션 개발에서 개발자를 지원하기 위해 많은 강력한 도구와 라이브러리를 제공하는 경량 PHP 프레임워크입니다. 가장 인상적인 기능 중 하나는 데이터베이스 쿼리 문을 작성하고 실행하는 간결하고 강력한 방법을 제공하는 데이터베이스 쿼리 빌더(QueryBuilder)입니다. 이번 글에서는 Co 사용법을 소개하겠습니다.

Pagoda Panel은 서버, 특히 웹 사이트 구축, 데이터베이스 관리 및 서버 유지 관리가 필요한 소규모 기업이나 개인 사용자를 신속하게 배포, 관리 및 모니터링하는 데 도움이 되는 강력한 패널 소프트웨어입니다. 이러한 작업 중에서 MySQL 데이터베이스 관리는 많은 경우 중요한 작업입니다. 그렇다면 MySQL 관리를 위해 Pagoda 패널을 사용하는 방법은 무엇일까요? 다음으로 단계별로 소개하겠습니다. 1단계: Pagoda 패널 설치 MySQL 관리를 위해 Pagoda 패널을 사용하기 전에 먼저 Pagoda 패널을 설치해야 합니다.

웹 애플리케이션이 계속 발전함에 따라 애플리케이션을 보다 빠르고 효율적으로 개발하는 것이 중요합니다. 그리고 RESTful API는 웹 애플리케이션에서 널리 사용되기 때문에 개발자는 RESTful API를 생성하고 구현하는 방법을 이해하는 것이 필요합니다. 이번 글에서는 CodeIgniter 프레임워크를 사용하여 MVC 패턴과 RESTful API를 구현하는 방법에 대해 설명합니다. MVC 패턴 MVC 소개(Model-Vie

PHP를 사용하여 Linux 환경에서 데이터베이스 작업을 수행하는 방법 최신 웹 애플리케이션에서 데이터베이스는 필수 구성 요소입니다. PHP는 다양한 데이터베이스와 상호 작용할 수 있는 인기 있는 서버측 스크립팅 언어입니다. 이 기사에서는 Linux 환경에서 데이터베이스 작업을 위해 PHP 스크립트를 사용하는 방법을 소개하고 몇 가지 구체적인 코드 예제를 제공합니다. 1단계: 필요한 소프트웨어 및 종속성 설치 시작하기 전에 Linux 환경에 PHP 및 관련 종속성이 설치되어 있는지 확인해야 합니다. 대개

모바일 인터넷의 발전으로 인스턴트 메시징이 점점 더 중요해지고 대중화되었습니다. 많은 기업에서 라이브 채팅은 비즈니스 문제를 빠르고 효과적으로 해결할 수 있는 편리한 커뮤니케이션 방법을 제공하는 커뮤니케이션 서비스에 가깝습니다. 이를 바탕으로 이 기사에서는 PHP 프레임워크 CodeIgniter를 사용하여 실시간 채팅 애플리케이션을 개발하는 방법을 소개합니다. CodeIgniter 프레임워크 이해 CodeIgniter는 개발자가 빠르게 작업할 수 있도록 일련의 간단한 도구와 라이브러리를 제공하는 경량 PHP 프레임워크입니다.

CodeIgniter 미들웨어: 안전한 파일 업로드 및 다운로드 기능 제공 소개: 파일 업로드 및 다운로드는 웹 애플리케이션 개발 중에 매우 일반적인 기능입니다. 그러나 보안상의 이유로 파일 업로드 및 다운로드를 처리하려면 추가 보안 조치가 필요한 경우가 많습니다. CodeIgniter는 개발자가 안전하고 안정적인 웹 애플리케이션을 구축할 수 있도록 지원하는 풍부한 도구와 라이브러리를 제공하는 인기 있는 PHP 프레임워크입니다. 이 기사에서는 CodeIgniter 미들웨어를 사용하여 보안 파일을 구현하는 방법을 소개합니다.
