1) , чтобы создать соединение
2) определяет , удалось ли соединение: connect_errno определяется кодом ошибки ,
если нет никаких проблем connect_errno === 0, в противном случае это сообщение об ошибке connect_error
3) , чтобы установить формат кодирования UTF-8 , закодированный по- китайски.
4) объекты обратного соединения
<?php
function initMysqli(){
//创建连接:参数1:主机地址 2:数据库用户名 3:用户密码 4:数据库
$mysqli = new mysqli("localhost","root","","20170922");
//判断连接是否成功
if($mysqli->connect_errno){
die($mysqli->connect_error);
}
//设置编码
$mysqli->set_charset("utf8");
return $mysqli;
}
?>
1. Операция вставки:
1) с помощью пакета initMysqli (); метод, чтобы создать новый объект подключения
2) () в запросе с помощью объекта, метод выполнения инструкций SQL, функция возвращает результаты не вернуть ложную, информацию об объекте успешно возвращается запрос
3) посредством определения того успешного результата выполнения, а затем вызвать соответствующую функцию обратного вызова, то есть функции параметров 2 и 3, следующие параметры
Если выполнить успешный вызов параметров функции обратного вызова 2, при неудаче вызывает функцию обратного вызова параметр 3
4) закрывает соединение
<?php
function insertData($sql,$success=null,$fail=null){
$mysqli = initMysqli();
$res = $mysqli->query($sql);//执行sql语句
if($res){
//参数2,3如果在调用时没有指定默认为null,执行会出错,所以要先判断是否指定
if($success){
//insert_id:新用户的id:一般id设置为自增,由数据库自动赋值
//将执行后信息,保存到自定义的关联数组中
$sInfo = array('id' =>$mysqli->insert_id,"msg"=>"注册成功","code"=>0);
//将该关联数组作为回调函数的参数
$success($sInfo);//调用参数2的回调函数
}
}else{
if($fail){
$fInfo = array('code' => $mysqli->errno, "errMsg"=>$mysqli->error,"sql"=>$sql);
$fail($fInfo);
}
}
$mysqli->close();
}
//调用方法演示:
$username = "张三";
//变量外要加引号
$sql = "INSERT INTO user (username,password,gender) VALUES ('{$username}','000','男')";
insertData($sql,function($response){
print_r($response);
},function($err){
print_r($err);
});
?>
2. Изменить обновление:
affected_rows: количество затронутых строк
После того, как операция обновления прошло успешно, чтобы определить количество строк, потому что, если число пострадавших строк равно 0, то нет никакого эквивалента поправки
<?php
function updateData($sql,$success=null,$fail=null){
$mysqli = initMysqli();
$res = $mysqli->query($sql);
if($res){
if($success){
//两种情况:1. 确实更新 2:本次更改和之前没区别
$sInfo = array('affected_rows' =>$mysqli->affected_rows,"msg"=>"更新成功","code"=>0);
$success($sInfo);
}
}else{
if($fail){
$fInfo = array('code' => $mysqli->errno, "errMsg"=>$mysqli->error,"sql"=>$sql);
$fail($fInfo);
}
}
$mysqli->close();
}
//调用方法演示
$sql = "UPDATE user SET gender = '女' WHERE id > 20";
updateData($sql,function($res){
print_r($res);
},function($err){
print_r($err);
});
?>
3. Удаление операции: Удалять также необходимо определитьли она обновляется
<?php
function deleteData($sql,$success=null,$fail=null){
$mysqli = initMysqli();
$res = $mysqli->query($sql);
if($res){
if($success){
$sInfo = array('affected_rows' =>$mysqli->affected_rows,"msg"=>"删除成功","code"=>0);
$success($sInfo);
}
}else{
if($fail){
$fInfo = array('code' => $mysqli->errno, "errMsg"=>$mysqli->error,"sql"=>$sql);
$fail($fInfo);
}
}
$mysqli->close();
}
?>
4. запрос:
num_rows: запрос на определенный номер
$ Резона-> FETCH_ASSOC (): возвращает значение текущей строки является ассоциативной формой массива, в каждую строку запроса, чтобы следить за движением ручки, в следующий раз, когда запрос должен быть найден в следующей строке, до конца запроса
<?php
function selectData($sql,$success=null,$fail=null){
$mysqli = initMysqli();
$res = $mysqli->query($sql);
if($res && $res->num_rows){
$res->data_seek(0);//将句柄移动到开始位置
//只要查询到的当前行不为空,就将数据存放在data数组中
while ($row = $res->fetch_assoc()){
$data[]=$row;
}
if($success){
$sInfo = array('data' =>$data,"msg"=>"查询成功","code"=>0);
$success($sInfo);
}
}else{
if($fail){
$fInfo = array('code' => $mysqli->errno, "errMsg"=>$mysqli->error,"sql"=>$sql);
$fail($fInfo);
}
}
$mysqli->close();
}
?>