mysqli面向对象方法的使用
构造方法
mysqli([string host [, string username [, string pswd [, string dbname [, int port, [string socket]]]]]])
1.连接数据库
a.
$mysqli = new mysqli('localhost','root','root','test');
b.
$mysqli = new mysqli();
$mysqli->connect('localhost','root','root','test');
c.
$mysqli = new mysqli('localhost','root','root');
$mysqli->select_db('test');
2.连接错误
mysqli_connect_errno() 返回一个整数,标识连接数据库是否成功和各种错误的数值。
mysqli_connect_error() 返回连接错误信息。
$conn = new mysqli('localhost', 'root', 'root', 'test', '3306');
if(mysqli_connect_errno()){
exit('Connect failed:' . mysqli_connect_error());
}
$conn->set_charset("utf8");
exit() 函数输出一条消息,并退出当前脚本。
该函数是 die() 函数的别名。
3.查询
$mysqli = new mysqli();
$mysqli->connect('localhost','root','root','Test','3306');
$query = 'SELECT sku,name,price FROM products ORDER by name';
$result = $mysqli->query($query,MYSQLI_STORE_RESULT);
//while(list($sku,$name,$price) = $result->fetch_row()){
// printf("(%s) %s: \$%s<br />",$sku,$name,$price);
//}
//while($row = $result->fetch_object()){
// printf("(%s) %s: \$%s<br />",$row->sku,$row->name,$row->price);
//}
while($row = $result->fetch_array()){
printf("(%s) %s: \$%s<br />",$row[0],$row[1],$row[2]);
}
4.释放
有时可能获取一个特别庞大的结果集,此时一旦完成处理,很有必要释放该结果所请求的内存。
$result->free();
关闭数据库
$mysqli->close();
5.确定所选择的行和受影响的行
a.确定返回的行数
$query = 'SELECT....';
$result = $mysqli->query($query);
printf("%d",$result->num_rows);
b.确定受影响的函数
$query = 'INSERT/UPDATE/DELETE....';
$result = $mysqli->query($query);
printf("%d",$result->affected_rows);
5.mysqli_result::fetch_array
默认为MYSQLI_BOTH,既可以以索引读取也可以通过字段名读取
mixed mysqli_result::fetch_array ([ int $resulttype = MYSQLI_BOTH ] )
MYSQL_ASSOC
对应字段
while($row = $result->fetch_array(MYSQLI_ASSOC)){
printf("(%s) %s: \$%s<br />",$row['sku'],$row['name'],$row['price']);
}
MYSQL_NUM
对应索引下标
while($row = $result->fetch_array(MYSQLI_NUM)){
printf("(%s) %s: \$%s<br />",$row[0],$row[1],$row[2]);
}