一、链接数据库
使用mysqli的构造方法实现数据库链接:mysql
面向对象风格sql
mysqli::__construct ([ string
$host
= ini_get("mysqli.default_host") [, string $username
= ini_get("mysqli.default_user") [, string $passwd
= ini_get("mysqli.default_pw") [, string $dbname
= "" [, int $port
= ini_get("mysqli.default_port") [, string $socket
= ini_get("mysqli.default_socket") ]]]]]] )
$host = '127.0.0.1'; //MySQL服务器地址 $username = 'root'; //用户名 $passwd = 'chz'; //密码 $dbname = 'demo'; //数据库名称 $link = @new mysqli($host, $username, $passwd, $dbname); if ($link->connect_error) { die('Connect Error (' . $link->connect_errno . ') ' . $link->connect_error); }else{ echo 'Success... ' . $link->host_info . '<br>'; } $link->close(); //关闭数据库链接
过程化风格数据库
mysqli mysqli_connect (
$host
, $username
, $passwd
, $dbname
, $port
, $socket
)
$link = @mysqli_connect($host, $username, $passwd, $dbname) or die('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error()); echo 'Success... ' . mysqli_get_host_info($link) . '<br>'; mysqli_close($link);
mysqli::select_db -- mysqli_select_db — 选择用于数据库查询的默认数据库,可用于切换数据库,也可用于替代mysqli_connect()第四个参数数组
//面向对象风格 $link->select_db($dbname) or die('数据库选择失败!'); //过程化风格 mysqli_select_db($link, $dbname) or die('数据库选择失败!');
二、执行SQL代码
全部sql代码都放在query函数中执行。服务器
面向对象风格socket
mixed mysqli::query ( string
$query
[, int $resultmode
= MYSQLI_STORE_RESULT ] )过程化风格函数
mixed mysqli_query ( mysqli
$link
, string $query
[, int $resultmode
= MYSQLI_STORE_RESULT ] )
$sql = "set names utf8" //设置字符集 $res = $link->query($sql); //面向对象风格 $res = mysqli_query($link,$sql); //过程化风格
2.一、数据库读操做fetch
query函数读成功会返回一个存储结果的mysqli_result对象,失败则返回falsethis
mysqli_result对象内容获取:spa
- mysqli_result::fetch_all — Fetches all result rows as an associative array, a numeric array, or both
- mixed mysqli_result::fetch_all ([ int
$resulttype
= MYSQLI_NUM ] ) 从结果集中获取全部结果 - $resulttype 取值为
MYSQLI_ASSOC
,MYSQLI_NUM
, orMYSQLI_BOTH
时分别返回一个关联数组、索引数组或二者混合成一个数组一块儿返回
- mixed mysqli_result::fetch_all ([ int
- mysqli_result::fetch_array — Fetch a result row as an associative, a numeric array, or both
- mysqli_result::fetch_assoc — Fetch a result row as an associative array
- mysqli_result::fetch_object — Returns the current row of a result set as an object
- mysqli_result::fetch_row — Get a result row as an enumerated array
function sql_query($sql,$all = false){ $res = $this->link->query($sql); if(!$res){ die('查询失败!'); } if($all){ //获取全部结果 return $res->fetch_all(MYSQLI_ASSOC); }else{ //获取一条结果 return $res->fetch_assoc(); } }
以上函数都有对应的过程化风格,加上mysqli_前缀,且第一个参数是mysqli_result对象
此外也能够经过foreach循环获得结果,但这种作法彷佛不太受推荐
2.二、数据库写操做
query函数写成功会返回true,失败则返回false,此外能够在mysqli对象里获取受影响行数等信息