建立数据库连接对象也叫实例化对象 mysqli类
<?php
$host='localhost';
$user='root';
$pass='';
$dbname='db';
$port='3306';
$charset='utf8';
$m=new mysqli($host,$user,$pass,$dbname,$port);
if($m->connect_error){
die('数据库连接失败,请检查...');
}
$m->set_charset($charset);
预处理语句 数据的插入
$stmt=$m->prepare('insert into stud values(null,?,?)');//执行相关的数据库sql语句
$stmt->bind_param('si',$n,$a);//$n,$a必须为引用变量 bind_param:将变量绑定到结果存储的准备语句
$n='jack'; //在使用 mysqli_stmt 相关预处理SQL的方法时,调用bind_param会报一个参数不足的错误,所以要引用变量
$a=32;
$stmt->execute();
$stmt->free_result();
预处理 数据的修改
$stmt=$m->prepare('update student set name=?,age=? where id=?'); //?不能加引号‘?’,预处理会自动处理?
$stmt->bind_param('sii',$n,$a,$i);
$n='李四';
$a=27;
$i=4;
$stmt->execute();//预处理的查询 执行一个查询,用了mysqli_prepare()功能先前准备的。当执行任何存在的参数标记时,将自动被适当的数据替换
$stmt->free_result(); //释放与该语句关联的结果内存
删除数据
$stmt=$m->prepare('delete from student where id=?');
$stmt->bind_param('i',$id);
$id =5:
$stmt->execute();
if($stmt->affected_rows>0){ //affected_rows 返回更改、删除或插入最后执行语句的行总数
echo '删除成功';
}
查询语句
$stmt=$m->prepare('select from student');
$stmt=execute();
$result =$stmt->get_result();//得到结果
while($rows=$result->fetch_assoc()){ // fetch_assoc 提取所有结果行作为关联数组,一个数值型数组
echo $rows['name'].'<br>'; //返回根据从结果集取得的行生成的关联数组,如果没有更多行,则返回 false。
}
//$rows=$result->fetch_all(2); //fetch_all函数从结果集中取得所有行作为关联数组,或数字数组,或二者兼有
//foreach($rows as $v){
// echo $v[1].'<br>';
//}
mysqi 相关的函数
mysqli_affected_rows() 返回前一个 Mysql 操作的受影响行数。
mysqli_autocommit() 打开或关闭自动提交数据库修改功能。
mysqli_change_user() 更改指定数据库连接的用户。
mysqli_character_set_name() 返回数据库连接的默认字符集。
mysqli_close() 关闭先前打开的数据库连接。
mysqli_commit() 提交当前事务。
mysqli_connect_errno() 返回最后一次连接调用的错误代码。
mysqli_connect_error()返回上一次连接错误的错误描述。
mysqli_connect()打开到 Mysql 服务器的新连接。
mysqli_data_seek()调整结果指针到结果集中的一个任意行。
mysqli_debug()执行调试操作。
mysqli_dump_debug_info()转储调试信息到日志中。
mysqli_errno()返回最近的函数调用产生的错误代码。
mysqli_error_list()返回最近的函数调用产生的错误列表。
mysqli_error()返回字符串描述的最近一次函数调用产生的错误代码。
mysqli_fetch_all()抓取所有的结果行并且以关联数据,数值索引数组,或者两者皆有的方式返回结果集。
mysqli_fetch_array()以一个关联数组,数值索引数组,或者两者皆有的方式抓取一行结果。
mysqli_fetch_assoc()以一个关联数组方式抓取一行结果。
mysqli_fetch_field_direct()以对象返回结果集中单字段的元数据。
mysqli_fetch_field()以对象返回结果集中的下一个字段。
mysqli_fetch_fields()返回代表结果集中字段的对象数组。
mysqli_fetch_lengths()返回结果集中当前行的列长度。
mysqli_fetch_object()以对象返回结果集的当前行。
mysqli_fetch_row()从结果集中抓取一行并以枚举数组的形式返回它。
mysqli_field_count()返回最近一次查询获取到的列的数目。
mysqli_field_seek()设置字段指针到特定的字段开始位置。
mysqli_field_tell()返回字段指针的位置。
mysqli_free_result()释放与某个结果集相关的内存。
mysqli_get_charset()返回字符集对象。
mysqli_get_client_info()返回字符串类型的 Mysql 客户端版本信息。
mysqli_get_client_stats()返回每个客户端进程的统计信息。
mysqli_get_client_version()返回整型的 Mysql 客户端版本信息。
mysqli_get_connection_stats()返回客户端连接的统计信息。
mysqli_get_host_info()返回 MySQL 服务器主机名和连接类型。
mysqli_get_proto_info()返回 MySQL 协议版本。
mysqli_get_server_info()返回 MySQL 服务器版本。
mysqli_get_server_version()返回整型的 MySQL 服务器版本信息。
mysqli_info()返回最近一次执行的查询的检索信息。
mysqli_init()初始化 mysqli 并且返回一个由 mysqli_real_connect() 使用的资源类型。
mysqli_insert_id()返回最后一次查询中使用的自动生成 id。
mysql_kill()请求服务器终结某个 MySQL 线程。
mysqli_more_results()检查一个多语句查询是否还有其他查询结果集。
mysqli_multi_query()在数据库上执行一个或多个查询。
mysqli_next_result()从 mysqli_multi_query() 中准备下一个结果集。
mysqli_num_fields()返回结果集中的字段数。
mysqli_num_rows()返回结果集中的行数。
mysqli_options()设置选项。
mysqli_ping()Ping 一个服务器连接,或者如果那个连接断了尝试重连。
mysqli_prepare()准备一条用于执行的 SQL 语句。
mysqli_query()在数据库上执行查询。
mysqli_real_connect()打开一个到 Mysql 服务端的新连接。
mysqli_real_escape_string()转义在 SQL 语句中使用的字符串中的特殊字符。
mysqli_real_query()执行 SQL 查询。
mysqli_reap_async_query()返回异步查询的结果。
mysqli_refresh()刷新表或缓存,或者重置复制服务器信息。
mysqli_rollback()回滚当前事务。
mysqli_select_db()改变连接的默认数据库。
mysqli_set_charset()设置默认客户端字符集。
mysqli_set_local_infile_default()清除用户为 load local infile 命令定义的处理程序。
mysqli_set_local_infile_handler()设置 LOAD DATA LOCAL INFILE 命令执行的回调函数。
mysqli_sqlstate()返回前一个 Mysql 操作的 SQLSTATE 错误代码。
mysqli_ssl_set()使用 SSL 建立安装连接。
mysqli_stat()返回当前系统状态。
mysqli_stmt_init()初始化一条语句并返回一个由 mysqli_stmt_prepare() 使用的对象。
mysqli_store_result()传输最后一个查询的结果集。
mysqli_thread_id()返回当前连接的线程 ID。
mysqli_thread_safe()返回是否设定了线程安全。
mysqli_use_result()初始化一个结果集的取回。
mysqli_warning_count()返回连接中最后一次查询的警告数量。