PHP를 배우기 시작했을 때 많은 사람들이 사용하는 데이터베이스는 MySQL이 첫 번째 선택이었고, 데이터베이스에 연결하는 확장은 MySQL 확장이 첫 번째 선택이었다고 생각합니다. 그러나 PHP 버전이 향상되면서. , MySQL 확장은 점차적으로 MySQL 및 PDO로 대체되고 있습니다. 더 이상 사용되지 않는 mysql 함수를 사용할 때 주어진 대로: mysql 확장은 더 이상 사용되지 않으며 향후 제거될 예정입니다. 대신 mysqli 또는 PDO를 사용하십시오. mysqli 확장을 배우는 것이 필수적입니다.
mysql 확장과 비교하여 mysqli 확장은 객체 지향 및 프로세스 지향 방법을 지원하고 전처리와 트랜잭션 처리를 지원하며 mysql보다 빠릅니다. 이 기사에서는 주로 mysqli의 기본적이고 간단한 객체지향 작업을 소개할 것입니다.
Mysqli 설치 구성
Mysqli 설치 구성은 다른 구성과 동일합니다. 먼저 php_mysqli.dll 파일이 php_mysqli.dll 파일이 있는지 확인하십시오. ext 폴더(일반적으로 존재함)를 삭제하고 php.ini 파일에서 "extension=php_mysqli.dll" 줄 앞의 ";"을 제거하고 extensi/span>
구성 파일에서 mysqli 확장이 활성화되었는지 확인하는 방법은 무엇입니까?
사실 가장 직접적인 방법은 mysqli 확장기능의 기능을 이용해 사용할 수 있는지 확인하는 것이다. 예를 들어 확장기능이 설치되었는지 여부로 판단할 수 있다. 데이터베이스에 연결할 수 있습니다. 물론 연결이 성공하면 당연히 설치가 되고, 연결이 실패하면 설치가 되지 않았다고 생각하지 마세요. phpinfo() 함수를 이용하면 mysqli 여부를 확실히 알 수 있습니다. 사용할 수 있습니다.
물론, mysqli 확장이 로드되었는지 확인하기 위해 Extension_loaded('mysqli')를 사용할 수 있고, get_loaded_extensions()를 통해 어떤 확장이 로드되었는지 확인할 수도 있습니다. http://php.net/manual/zh/mysqli.summary.php
를 참조하세요. 아래에서는 코드를 통해 mysqli의 사용을 설명하겠습니다. .이 예에 사용된 테이블은 id와 title이라는 두 개의 필드가 있는 테스트 테이블입니다.
위의 코드는 단순히 mysqli를 사용하여 순회하지 않고 쿼리하는 방법을 보여줍니다. 쿼리 결과 집합을 사용하면 배열의 데이터를 검색하는 것이 어렵지 않아야 합니다.
$mysqli->query()에 의해 실행된 sql 문은
<span><?<span>php </span><span>//</span><span>配置文件完成相关配置</span><span>define</span>("HOST", "localhost"<span>); </span><span>define</span>("USER", 'root'<span>); </span><span>define</span>("PWD", ''<span>); </span><span>define</span>("DB", 'yii'<span>); </span><span>//</span><span>建立连接,生成mysqli实例对象。</span><span>$mysqli</span>=<span>new</span> Mysqli(HOST,USER,PWD,<span>DB); </span><span>if</span> (<span>$mysqli</span>-><span>connect_errno) { </span>"Connect Error:".<span>$mysqli</span>-><span>connect_error; } </span><span>//</span><span>设置默认的字符集</span><span>$mysqli</span>->set_charset('utf8'<span>); </span><span>$sql</span>="select * from test"<span>; </span><span>//</span><span>生成mysql_result对象</span><span>$result</span>=<span>$mysqli</span>->query(<span>$sql</span><span>); </span><span>//</span><span>返回二维关联数组,参数同理可以设定为MYSQLI_NUM返回索引数组,或者MYSQLI_BOTH二者兼有。</span><span>$rows</span>=<span>$result</span>-><span>fetch_all(MYSQLI_ASSOC); </span><span>//</span><span>将结果指针调整到任意行</span><span>$result</span>->data_seek(2<span>); </span><span>$row</span>=<span>$result</span>-><span>fetch_row(); </span><span>//</span><span>$row=$result->fetch_array(); //$row=$result->fetch_assoc(); //$row=$result->fetch_object(); //释放结果集</span><span>$result</span>-><span>free(); </span><span>//</span><span>$result->free_result(); //$result->close(); //关闭连接</span><span>$mysqli</span>->close();</span>
EXPLAIN 쿼리는 mysqli_result 객체를 반환하고, 다른 쿼리는 INSERT 수행 시 $mysqli->affected_rows를 호출하여 얻을 수 있는
을 반환합니다. , UPDATE 및 DELETE 작업 영향을 받은 레코드 수 $mysqli->affected_rows 반환 값 -1은 SQL 문에 문제가 있음을 나타내고, 0은 영향을 받은 레코드가 없음을 나타냅니다. 기타 값은 영향을 받은 레코드의 수입니다. TRUE,执行失败则都返回false。
여러 개의 SQL 문 실행, 전처리, 트랜잭션 처리도 mysqli의 중요한 부분인데 이에 대해서는 나중에 에세이에서 쓰겠습니다.
이상에서는 Mysqli의 기본 지식을 포함하여 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.