PHP——MySQL知识

打开一个到MySQL服务器的连接

mysqli_connect("主机","用户名","密码");

如果成功则返回一个MySQL连接标识,失败返回false。脚本一结束,到服务器的连接就被关闭,除非之前已经明确调用mysql_close() 关闭了。


mysqli_pconnect() 和 mysql_connect() 主要区别

  • 首先,当连接的时候本函数将先尝试寻找一个在同一个主机上用同样的用户名和密码已经打开的(持久)连接,如果找到,则返回此连接标识而不打开新连接。
  • 其次,当脚本执行完毕后到SQL服务器的连接不会被关闭,此连接将保持打开以设备以后使用(mysqli_close() 不会关闭由mysql_pconnect() 建立的连接)。 
  • 可选参数 client_flags 自PHP 4.3.0版起作用。
  • 此连接称为“持久的”。 

mysqli_select_db("打开数据库",连接标识符) ——选择MySQL数据库

mysqli_query ——发送一条MySQL语句

mysqli_num_rows(果集) ——取得结果集中行的数目

 mysqli_fetch_array ——从结果集中取得一行作为关联数组,或数字数组,或二者兼有

mysqli_fetch_row ——从结果集中取得一行作为索引数组

mysqli_fetch_assoc ——从结果集中取得一行作为关联数组

array mysqli_fetch_array(resource $result[,int$result_type)

有一点很重要必须指出,用mysqli_fetch_array() 并不明显 比用 mysqli_fetch_row() 慢,而且还提供了明显更多的值。

mysqli_fetch_array() 中可选的第二个参数 result_type 是一个常量,可以接受以下值:

  • MYSQLI_ASSOC, MYSQLI_NUM, MYSQLI_BOTH。本参数的默认值是 MYSQLI_BOTH。
  • 用MYSQLI_BOTH,将得到一个同时包含关联和数字索引的数组
  • 用MYSQLI_ASSOC只得到关联索引(如同  mysqli_fetch_assoc()  那样)
  • 用  MYSQLI_NUM 只得到数字索引(如同mysqli_fetch_row()  那样)。

解决中文乱码

mysqli_query("set names 'GBK'");
<?php
//获得数据库连接,@是屏蔽错误的,“or die("错误")”
// 是当数据库连接出错时才会执行的
$conn=@mysqli_connect("localhost","root","200871") or die("错误");
//var_dump($conn);
if($conn){
    echo "成功";
}
//打开一个数据库,返回值是boolean
mysqli_select_db("php",$conn);
$sql="INSERT INTO `test`(`id`,`name`,`regdate`) VALUES(null,'得到',now())";
//echo $sql;
if(mysqli_query($sql,$conn)) echo "sdsd";
//mysql_fetch_array 返回查询结果集,变成一个关联数组,并把字段名作为键
// mysqli_fetch_row 返回查询结果集,编程一个索引数组。
// $sql="SELECT * FROM `test`";
// $result=mysqli_query($sql,$conn);
// var_dump($result);
// $arr=mysqli_fetch_row($result);
// print_r($arr);
// $arra=mysqli_fetch_array($result);
// print_r($arra);
//输出所有记录
// while($arra=mysqli_fetch_array($result)){
//     echo $arra['name'];
// }
//返回结果集的行数
// echo mysqli_num_rows($result);
?>

文件操作

fopen(url,参数) ——代开一个文件,参数是对文件的权限。

die、exit ——执行一段代码输出,并终止下边的脚本语言。

void exit([string $status])

 void exit(int $status)

<?php
    $filename='/path/to/data-file';
    $file=fopen($filename,'r');
    //or是当之前的代码为假时执行之后的代码
        or exit("unable to open file($filename)");
?>

 mysqli_free_result ——释放结果内存

bool mysqli_free_result(resource $result)
  • mysql_free_result() 将释放所有与结果标识符 result 所关联的内存。
  • mysql_free_result() 仅需要在考虑到返回很大的结果集时会占用多少内存时调用。在脚本结束后所有关联的内存都会被自动释放。
  • 如果成功返回true,失败返回false。

mysqli_fetch_object ——从结果集中得到一行作为对象

object mysqli_fetch_object(resource $resuilt)
  • 返回根据所取得的行生成的对象,如果没有更多行则返回false
<?php
    mysqli_connect("hostname","user","password");
    mysqli_select_db("mydb");
    $result=mysqli_query("SELECT * FROM `mytable`");
    while($row=mysqli_fetch_object($result)){
        echo $row->user_id;
        echo $row->fullname;
    }
    mysqli_free_result($result);
?>

mysqli_affected_rows ——取得前一次MySQL操作所影响的记录行数

int mysql_affected_rows([resource $link_identifier])
  • 取得最近一次与link_identifier关联的  INSERT,UPDATE  或  DELETE   查询所影响的记录行数。

mysql_insert_id ——取得上一步  INSERT  操作产生的  ID

int mysqli_insert_id([reourece $link_identifier])
  • mysql_insert_id() 返回给定的link_identifier 中上一步 INSERT 查询中产生的AUTO_INCREMENT  的  ID号。如果没有指定  link_identifier,则使用上个打开的连接。
  • 如果上一查询没有产生 AUTO_INCREMENT 的值,则 mysql_insert_id() 返回0,。如果需要保存该值以后使用,要确保产生了值的查询之后立即调用 mysql_insert_id()。

上一篇:gradle不安全连接问题


下一篇:php MySQL