이전 글에서는 "PHP에서 SQL 쿼리 결과를 얻는 일반적인 함수(자세한 예)"를 소개했는데, 여기서는 PHP에서 데이터베이스를 쿼리할 때 일반적으로 사용되는 여러 함수를 자세히 소개했습니다. 한 번에 여러 SQL 명령을 실행하는 방법. 모두에게 도움이 되기를 바랍니다!
지난 기사에서는 서로 다른 함수를 통해 데이터를 쿼리하면 서로 다른 형식을 반환하는 일반적인 함수를 소개했습니다. mysqli_query() 함수는 한 번에 하나의 SQL 명령만 실행할 수 있습니다. 코드가 한 번에 여러 SQL 명령을 실행할 수 있도록 하는 PHP의 함수, 즉 mysqli_multi_query() 함수를 살펴보겠습니다.
<strong><span style="font-size: 20px;">mysqli_multi_query()</span></strong>
함수<strong><span style="font-size: 20px;">mysqli_multi_query()</span></strong>
函数
在我们前面介绍的 mysqli_query()
函数的时候,运行该函数每次只能执行一条SQL命令,但是想要执行多条SQL命令的时候,mysqli_query() 函数就不能满足我们了,这时候我们就需要通过mysqli_multi_query()
函数来实现一次执行多条 SQL 命令。
mysqli_multi_query()
函数的语法格式如下:
mysqli::multi_query(string $query)
这是面向对象的写法,下面是面向过程的写法:
mysqli_multi_query(mysqli $link, string $query)
其中需要注意的是:
$query
表示为要查询的 SQL 语句
$link
表示为使用 mysqli_connect() 函数返回的链接标识
$query
表示参数,其中可以包含多条 SQL 命令,每条 SQL 命令之间使用分号;
分隔。如果第一条 SQL 命令在执行时没有出错,那么这个函数就会返回 TRUE,否则将返回 FALSE。
接下来我们通过示例来看一下mysqli_multi_query() 函数的使用,来执行多条SQL命令,示例如下:
<?php $host = 'localhost'; $username = 'root'; $password = 'root'; $dbname = 'test'; $mysql = new Mysqli($host, $username, $password, $dbname); if($mysql -> connect_errno){ die('数据库连接失败:'.$mysql->connect_errno); }else{ $sql = 'select id,name from user;'; // SQL 语句 $sql .= 'select sex,age from user'; // SQL 语句 if($mysql -> multi_query($sql)){ do{ if ($result = $mysql -> store_result()) { while ($row = $result->fetch_row()) { print_r($row); } $result->free(); } if ($mysql -> more_results()) { echo '<hr>'; }else{ break; } } while ($mysql -> next_result()); } $mysql -> close(); } ?>
输出结果:
上述结果通过mysqli_multi_query() 函数完成了执行多条SQL命令,
其中我们需要注意的是:
因为 mysqli_multi_query()
函数能够连接执行一个或多个查询,而每条 SQL 命令都可能返回一个结果,在必要时需要获取每一个结果集。所以对该函数返回结果的处理也有了一些变化,第一条查询命令的结果要用 mysqli_use_result()
或 mysqli_store_result()
函数来读取。
也可以使用 mysqli_store_result()
函数将全部结果立刻取回到客户端,而且这么做的效率更高。另外,可以使用mysqli_more_results()
函数检查是否还有其他结果集。
如果想对下一个结果集进行处理,可以使用 mysqli_next_result()
函数获取下一个结果集,有下一个结果集时该函数返回 TRUE,没有时返回 FALSE,在有下一个结果集的情况下,也需要使用 mysqli_use_result()
或 mysqli_store_result()
mysqli_query()
함수에서는 이 함수를 실행할 때 한 번에 하나의 SQL 명령만 실행할 수 있지만 여러 개의 SQL 명령을 실행할 때 mysqli_query() 함수로는 만족할 수 없습니다. 이때 여러 개의 SQL 명령을 동시에 실행하려면 mysqli_multi_query()
함수를 사용해야 합니다.
mysqli_multi_query()
함수 구문 형식은 다음과 같습니다.<?php $host = 'localhost'; $username = 'root'; $password = 'root'; $dbname = 'test'; $link = @mysqli_connect($host, $username, $password, $dbname); if($link){ $sql = 'select id,name from user;'; // SQL 语句 $sql .= 'select sex,age from user'; // SQL 语句 $result = mysqli_multi_query($link, $sql); // 执行 SQL 语句,并返回结果 do{ if($data = mysqli_use_result($link)){ while ($row = mysqli_fetch_row($data)) { print_r($row); } mysqli_free_result($data); } if(mysqli_more_results($link)){ echo '<hr>'; }else{ break; } } while (mysqli_next_result($link)); mysqli_close($link); }else{ echo '数据库连接失败!'; } ?>이것은 객체 지향 작성이고, 다음은 프로세스 지향 작성입니다.
rrreee주의할 점은 :
$query
는 쿼리할 SQL 문을 나타냅니다🎜 $link
는 mysqli_connect() 함수에 의해 반환된 링크 식별자를 나타냅니다. 🎜$query
는 여러 SQL 명령을 포함할 수 있는 매개 변수를 나타냅니다. 각 사이에 세미콜론을 사용합니다. SQL 명령 ;
가 구분되어 있습니다. 이 함수는 첫 번째 SQL 명령이 오류 없이 실행되면 TRUE를 반환하고, 그렇지 않으면 FALSE를 반환합니다. 🎜mysqli_multi_query()
함수는 다음에서 하나 이상의 쿼리를 실행할 수 있기 때문입니다. 각 SQL 명령은 각각 결과를 반환할 수 있으며 필요할 때 각 결과 집합을 가져와야 합니다. 따라서 이 함수에서 반환된 결과 처리에 일부 변경이 있었습니다. 첫 번째 쿼리 명령의 결과는 mysqli_use_result()
또는 mysqli_store_result()
를 사용하여 읽어야 합니다. > 기능. 🎜🎜또한 mysqli_store_result()
함수를 사용하여 모든 결과를 클라이언트에 즉시 다시 가져올 수 있으며 이것이 더 효율적입니다. 또한 mysqli_more_results()
함수를 사용하여 추가 결과 세트가 있는지 확인할 수 있습니다. 🎜🎜다음 결과 세트를 처리하려면 mysqli_next_result()
함수를 사용하여 다음 결과 세트가 있으면 TRUE를 반환하고, 다음 결과 세트가 있으면 FALSE를 반환합니다. 결과 세트의 경우 mysqli_use_result()
또는 mysqli_store_result()
함수를 사용하여 결과 세트의 내용을 읽어야 합니다. 🎜🎜위는 객체지향 방식입니다. 다음으로 프로세스 지향 방식을 살펴보겠습니다. 🎜rrreee🎜출력 결과는 위 결과와 동일하므로 mysqli_multi_query()를 사용할 수 있습니다. 한 번에 여러 SQL 명령을 완료하는 기능입니다. 🎜🎜관심이 있으시면 "🎜PHP 비디오 튜토리얼🎜"을 클릭하여 PHP 지식에 대해 자세히 알아볼 수 있습니다. 🎜위 내용은 PHP 데이터베이스를 학습할 때 여러 SQL 명령을 한 번에 실행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!