mysql php dll_php_mysql.dll和php_mysql.dll\ php_pdo.dll

= mysql_query("SELECT `name` FROM `users` WHERE `location` = ‘$location‘");while ($row =mysql_fetch_array($result, MYSQL_ASSOC))

{

echo $row[‘name‘];

}

mysql_free_result($result);?>

$mysqli= newmysqli($db_host, $db_user, $db_password, $db_name);

$sql= "INSERT INTO `users` (id, name, gender, location) VALUES (?, ?, ?, ?)";

$stmt= $mysqli->prepare($sql);

$stmt->bind_param(‘dsss‘, $source_id, $source_name, $source_gender, $source_location);

$stmt->execute();

$stmt->bind_result($id, $name, $gender, $location);while ($stmt->fetch())

{

echo $id . $name . $gender . $location;

}

$stmt->close();

$mysqli->close();?>

PECL是什么东西来的呢???!!!记得去查查‘20170716

$dsn= "mysql:host=$db_host;dbname=$db_name";

$dbh= newPDO($dsn, $db_user, $db_password);

$sql= "SELECT `name`, `location` FROM `users` WHERE `location` = ? , `name` = ?";

$sth= $dbh->prepare($sql);

$sth->execute(array($location, $name));

$result= $sth->fetch(PDO::FETCH_OBJ);

echo $result->name . $result->location;

$dbh=NULL;?>

三个,没看出什么区别,好像就是写法吧,苦笑/哭笑/

插曲:

预防 SQL Injection的 function: mysql_real_escape_string()

example:

mysql_real_escape_string() 函数转义 SQL 语句中使用的字符串中的特殊字符。//转义用户名和密码,以便在 SQL 中使用

$user =mysql_real_escape_string($user);

$pwd=mysql_real_escape_string($pwd);

$sql= "SELECT * FROM users WHERE

user=‘" . $user . "‘ AND password=‘" . $pwd . "‘"如果不转义SQL就会变成:

SELECT*FROM users

WHERE user=‘john‘ AND password=‘‘ OR ‘‘=‘‘至于在$_POST变量塞上 ; drop table user;什么的就是另外一回事了。

预防数据库攻击的正确做法:

function check_input($value)

{//去除斜杠

if(get_magic_quotes_gpc())

{

$value=stripslashes($value);

}//如果不是数字则加引号

if (!is_numeric($value))

{

$value= "‘" . mysql_real_escape_string($value) . "‘";

}return$value;

}

mysql是非持继连接函数而mysqli是永远连接函数。

mysql每次链接都会打开一个连接的进程而mysqli多次运行mysqli将使用同一连接进程,从而减少了服务器的开销

mysqli不是默认开启的,win下要改php.ini,去掉php_mysqli.dll前的;,linux下要把mysqli编译进去。

插曲:

mysql_fetch_row(),mysql_fetch_array() 这两个函数,返回的都是一个数组,区别就是第一个函数返回的数组是只包含值,

我们只能$row[0], $row[1],这样以数组下标来读取数据,而mysql_fetch_array()返回的数组既包含第一种,也包含键值 对的形式,

我们可以这样读取数据,(假如数据库的字段是 username,passwd): $row[‘username‘], $row[‘passwd‘] 而且,

如果用($row as $kay =>$value)来操作的话,还以直接取得数据库的字段名称。

更主要的是mysqli是php5提供的新函数库,(i)表示改进,其执行速度更快.

php_mysql.dll和php_mysql.dll\ php_pdo.dll

标签:word   .com   example   inject   dbn   mysq   斜杠   users   john

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:http://www.cnblogs.com/haveadream435/p/7189948.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值