php - 根据用户输入获取字段值

标签 php mysql

<分区>

我正在尝试根据用户输入(用户名)获取字段值(SecurityQues)。

代码如下:

$substr=substr($usrnm,0,2);

if($substr=="AC")
{
    $res="SELECT SecurityQues FROM reg_ac WHERE UserName=$usrnm";
}
else
{
    $res="SELECT SecurityQues FROM reg_indi WHERE UserName=$usrnm";
}       

$result = mysql_query($res,$db_handle); 

$result = mysql_query($res);

while($row = mysql_fetch_assoc($result))
{   

    echo $row['SecurityQues'];
}

但我收到以下警告:

Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\my on line 120

最佳答案

该错误消息是由于您的查询有错误且无法执行而导致的,而您没有进行错误检查来捕获该错误。

由于用户名是一个字符串,因此它需要放在引号内,否则您的查询将像现在这样继续失败。

$res="SELECT SecurityQues FROM reg_ac WHERE UserName='$usrnm'";
                                                     ^      ^

并且不要执行您的查询两次。虽然这不会导致您当前的错误,但这只是浪费资源和不必要的。

即使在该修复之后,您的查询仍然很容易受到注入(inject),它可能会在您眨眼之前关闭您的 mysql 服务器。

How can I prevent SQL injection in PHP?

关于php - 根据用户输入获取字段值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26304663/

相关文章:

java - 填写网站中的 PHP/HTML 字段

php - 以编程方式识别覆盖特征方法的方法

php - 使用 php 连接到 mysql 数据库

mysqld.exe 停止工作

php - 计算多列mysql中的值

php - 使用 PHP 从数据库获取值(value)

mysql - 建立索引时速度更快。 MySQL 中的 INT (10) 或时间戳

mysql - 如何在MySQL中查找一年中的一月到七月缺少的月数

php - 这么多更新查询

php - 期望多个结果时正确的 SELECT 查询