mysql的PDO中 exec()函数和 execute()函数有什么区别呢?

mysql的PDO中 exec()函数和 execute()函数有什么区别呢?,第1张

exec执行一条SQL语句,并返回受影响的行数。此函数不会返回结果集合。

execute函数是用于执行已经预处理过的语句,只是返回执行结果成功或失败。也就是说execute需要配合prepare函数使用,这个的确是麻烦了一点,每次都要先prepare,然后才能exec

# To increase your application security and prevent SQL injection attacks,

# it is advisable to use placeholders in queries (prepared statements):

$sql = qq`SELECT field FROM table WHERE name=? AND password=?`

$sth = $dbh->prepare($sql) or die "Cannot prepare: " . $dbh->errstr()

$sth->execute($name, $password) or die "Cannot execute: " . $sth->errstr()

my $field = $sth->fetchrow_array()

$sth->finish()

以上是使用参数的情况,是为了防止常见的sql注入,防止黑客攻击,最常见的sql注入就比如,输入用户名的时候这样写 jack ' where 1=1 看到有个单引号没?

例子里面,注意sql语句中有 name = ?和password=?,你execute($name, $password),他会自动传入这两个值,并且会加转义符,如,变成 jack \' where 1\=1 这样,sql就安全了

你当前使用的用户名没有添加的权限,应该给当前用户分配权限,具体过程:

1.用最上位管理者登陆mysql,就是用户名是root的那个

2.点击主页面上的【权限】按钮,会出现 用户一览

3.在用户一览 页面,选择当前用户名【hxm】进行 编辑权限,选择【全选】就可以了

最后 重新登录mysql


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7087618.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-01
下一篇 2023-04-01

发表评论

登录后才能评论

评论列表(0条)

保存