Php mysql pdo 查询:用查询结果填充变量

Php mysql pdo query: fill up variable with query result(Php mysql pdo 查询:用查询结果填充变量)
本文介绍了Php mysql pdo 查询:用查询结果填充变量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

我有一个网站可以轻松生成 ProFTPD 用户.现在,我正在保护我的网站免受 sql 注入攻击,为此,我将所有 mysqli 查询更改为带有准备好的语句的 pdo 查询.

但是我还是没弄明白,如何将sql查询结果保存在变量中.

<预><代码>...用户名=$_POST['用户名'];...$pdo = new PDO('mysql:host=localhost;dbname='db', 'root', 'PW');$query1= $pdo->prepare('select * from users where userid=:username');$query1->execute(array('username' => $username));foreach($query1 作为 $row){$result= $row->userid;}if($result == $username){echo "用户名已被占用";}

当我运行这段代码时,变量 $result 是 emtpy.

我希望有人能帮助我.

提前致谢.

解决方案

你应该使用 PDOStatement::fetch http://php.net/manual/en/pdostatement.fetch.php

I have a website to easily generate ProFTPD users. And now, I am securing my website against sql injection attacks, to do that I am changing all mysqli queries to pdo queries with prepared statements.

But I still couldn't find out, how to save sql query results in variable.

.
.
.

username=$_POST['username'];

.
.
.

$pdo = new PDO('mysql:host=localhost;dbname='db', 'root', 'PW');
$query1= $pdo->prepare('select * from users where userid=:username');
$query1->execute(array('username' => $username));

foreach($query1 as $row)
{
 $result= $row->userid;
}


if($result == $username)
{
 echo "Username is already taken";
}

When I run this code, the variable $result is emtpy.

I hope somebody could help me.

Thanks in advance.

解决方案

You should use PDOStatement::fetch http://php.net/manual/en/pdostatement.fetch.php

这篇关于Php mysql pdo 查询:用查询结果填充变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

相关文档推荐

Warning: mysqli_query() expects at least 2 parameters, 1 given. What?(警告:mysqli_query() 需要至少 2 个参数,1 个给定.什么?)
INSERT query produces quot;Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean givenquot;(INSERT 查询产生“警告:mysqli_num_rows() 期望参数 1 为 mysqli_result,给出布尔值;)
prepared statements - are they necessary(准备好的陈述 - 它们是否必要)
Do I need to escape my variables if I use MySQLi prepared statements?(如果我使用 MySQLi 准备好的语句,是否需要转义我的变量?)
Properly Escaping with MySQLI | query over prepared statements(使用 MySQLI 正确转义 |查询准备好的语句)
Is it possible to use mysqli_fetch_object with a prepared statement(是否可以将 mysqli_fetch_object 与准备好的语句一起使用)