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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)