在数据库中执行一次SQL查询,受查询的字符需要事先经过转义处理;
公式:
mysqli_multi_query( 使用的数据库连接, 需要执行的SQL语句);
既然使用了这个方法,那么必然是有多条SQL语句需要被执行,但这个方法看起来又只能传两个参数,这…?
可以选择累加的方法, 在一个变量上累加多条SQL语句,使用分号隔开:
例:
$sql = "SELECT Lastname FROM Persons ORDER BY LastName;";
$sql .= "SELECT Country FROM Customers";
这些SQL语句会被逐条执行,还是要注意一下执行顺序的;
如果第一条命令执行正常,那么该方法将返回一个true(否则返回false),对于第一条命令返回的结果,必须使用mysqli_store_results()或mysqli_use_result()来进行接收:
mysqli_store_results()将全部命令的执行结果直接取回客户端, 效率更高;
do {
if($result=mysqli_store_result($link)) {
$data[$i]=mysqli_fetch_all($result);
//从结果中取得所有数据并以关联数组的形式存储;
mysqli_free_result($result);
//取得$result后释放其所占内存;
}else{
$data[$i]=null;
}
$i++;
if(!mysqli_more_result($link)) break;
}while (mysqli_next_results($link));
释放变量占用的内存
公式:
mysqli_free_result(变量名);
从变量中取得所有数据并以关联数组的形式存储;
公式:
mysqli_fetch_all()
例:
//这是在接收mysqli_multi_query()的结果,外面包着的循环略;
$data[$i]=mysqli_fetch_all($result);
fopen打开某个路径对应的文件,依据 [需要指针由文档何处开始] 来选定访问模式;
mode | 说明 |
---|---|
r | 只读,将文件指针指向文件头. |
r+ | 可读写,余同r |
w | 可写入,将文件指针指向文件头并将文件大小截为零。如果文件不存在则创建之. |
w+ | 可读写,余同w |
a | 可写入,将文件指针指向文件末尾, 如果文件不存在则创建之. |
a+ | 可读写,余同a |
$file = fopen( './存储至文件', 访问模式 );
独占锁定
同一时刻只有一个单独的用户在操作文件,这样是没有问题的。但是如果两个或者更多用户同时操作同一文件的话,程序就会出现错误。解决这种问题的方法就是,在使用 PHP 向文件中写入时,暂时锁定该文件.
改变当前文件的锁定状态,flock执行完毕返回布尔值:
mode | 说明 |
---|---|
LOCK_SH | 取得共享锁定(读取的程序) |
LOCK_EX | 取得独占锁定(写入的程序) |
LOCK_UN | 释放锁定(无论共享或独占) |
if ( flock( $file, LOCK_EX ) ) {
使用了 flock() 函数对文件进行了加锁操作,那么调用 fclose() 函数时,文件会自动解锁,但最好还是在文件写入完成后加上解锁语句
拿到独占锁定和写入权限后, fwrite() 将string内容自文件指针处写入.
用于向文件写入字符串,成功返回写入的字符数,否则返回 FALSE
公式:
$result_int = fwrite(文件名, 一个字符串);
fopen()打开文件,操作完之后总还是要关闭文件的;
公式:
fclose(文件路径)
读取一个文件
公式:
fread(一个已经被fopen打开的文件, 要读取的字节数);
例:
while(!feof($file)) {
//在文字指针到达文件末尾之前循环遍历;
$con .= fread($file, 1); //读取文件,每次读取一个字节;
}
销毁一个已经给定的变量;
公式:
unset(变量名);
例:
//销毁数组arr中第4个元素;
unset($arr[3]);
检查一个变量是否已设置并且非 NULL.
公式:
isset(变量名);
例:
isset($_GET['key'])
获取某个文件中的所有内容,
公式:
file_get_contents('文件路径');
例:
$str = file_get_contents('mysql.txt');
把一个字符串写入文件中;
公式:
file_put_contents('文件路径', 要写入的字符串, 模式(可选))
将字符串以某个字符为界割裂成一段段,并且做成一个数组返回:
完成后可以通过选取数组元素的方法:arr[?],来选取某段割出的数组元素,选出来的是字符串或者数字;
公式:
explode(分割标志, 字符串);
例
//比如以"@_@"这段字符作为分割标记;
$str=我@_@不@_@知@_@道
explode('@_@', $str);
用某个/段字符作为连接再次将数组合并为字符串, 完成后返回字符串:
$arr = ["我", "不", "知", "道":]
$strs = implode('@_@', $arr);
var_dump($strs); //我@_@不@_@知@_@道;
基本相当于JS中的累加号,可以拼接字符串和数字, 对, 对于数字型也只能是进行拼接:
$a = 1;
$b = 3;
$c = 2;
$c .= $a;
$c .= $c;
echo $c;
_