手机渗透php,Web渗透:PHP 与MySQL 交互

//$port 连接数据库时,所使用的端口[可选]

如果链接成功,返回object(mysqli)1 ;否则,返回bool(false)$link 是对象类型的变量,相当于一个"令牌"。

连接错误时的提示

mysqli_connect_errno(); //返回最后一次连接调用的错误代码

mysqli_connect_error(); //返回一个字符串描述的最后一次连接调用的错误代码

设置默认字符编码

mysqli_set_charset ($link,'utf-8);

选择特定的数据库

mysqli_select_db($link,'bbs');

关闭与mysql服务器的连接

mysqli_close($link);

0x03 执SQL语句

对数据库执行一条SQL语句

$sql = "select message.id,user.username,message.title

from user,message where message.uid=user.id";

$results = mysqli_query($link,$sql);

var_dump($results); // object(mysqli_result)#2

//$link 与mysql 交互的”令牌“

//$sql 执行的SQL 语句

//$results 结果对象集合

如果SQL 语句正常执行,就会返回对象类型object(mysqli_result)#2 的数据;否则,返回bool(false)。对于insert,delete,update 等不会返回数据的SQL语句,在执行没有错误时将返回true。对于返回数据的SQL语句执行成功的时候会返回结果集对象 ,可以使用操作结果集对象的函数来从中获取数据。MYSQLI_STORE_RESULT 和MYSQLI_USE_RESULT 决定了mysqli client 和server 之间取结果集的方式。

MYSQLI_STORE_RESULT下,执行SQL时提取结果集返回给client,并分配内存,存储到用户程序空间中,之后mysqli_fetch_array() 相当于是从本地取数据;MYSQLI_USE_RESULT方式下,mysqli_fetch_array()每次都要向server请求结果行。MYSQLI_USE_RESULT,执行SQL的时候并没有从server 将结果集取回。

SQL语句错误

如果在执行SQL语句的时候发生错误,以上两个函数都将返回false。 并且可以使用以下函数处理错误原因:

die("[".mysqli_errno($link)."]".mysqli_error($link));

//$link 与MySQL 数据库交互的令牌

0x04 操作结果集对象的函数

从结果集对象中解析数据的常见函数

函数速查

函数说明mysqli_fetch_row()以索引数组的方式获取一条记录的数据mysqli_fetch_assoc()以关联数组的方式获取一条记录的数据mysqli_fetch_array()以索引数组或关联数组的方式获取一条记录的数据mysqli_fetch_all()以索引数组或关联数组的方式获取全部记录的数据mysqli_num_rows()获取结果中行的数量mysqli_free_result()释放与一个结果集合相关的内存

mysqli_num_rows()

mysqli_num_rows($results);

// 4

//$results 结果集对象

mysqli_fetch_row()

$result = mysqli_fetch_row($results); //array(3)

$result = mysqli_fetch_row($results); //array(3)

$result = mysqli_fetch_row($results); //array(3)

$result = mysqli_fetch_row($results); //array(3)

$result = mysqli_fetch_row($results); //null

mysqli_fetch_assoc()

while($result = mysqli_fetch_assoc($results)){

var_dump($result);

}

简单应用

/*

结果集对象$results 有几条记录

循环就执行几次

表格就有几行(除了表头以外)

就有几个

标签

每条记录有几个字段

数组中有多少个元素。

每一行中就有几个单元格

就是几个

标签。

*/

while($result = mysqli_fetch_assoc($results)){

echo "

";

foreach($result as $k => $v){

if($k == "title"){

$html = "

href = './messageShow.php?id={$result['id']}'

target = '_blank'>

{$v}

";

echo $html;

}else{

echo "

";

echo $v;

echo "

";

}

}

echo "

";

}

?>

0x05 其他常用函数

mysqli_real_escape_string()

转义用于SQL语句中的特殊字符防止SQL语句出错

string mysqli_real_escape_string ( mysqli $link , string $escapestr );

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值