如何从表中询问SELECT *,其中所有列= $ var

时间:2015-05-14 12:06:54

标签: php mysql sql select

您如何选择具有var值的列? 像这样:

 $var=$_GET['id'];
 $select="SELECT * FROM table WHERE **COLUMNS THAT EQUAL TO VAR** = $var";

如何选择那些具有$ var值的列?

澄清:只选择值为$ var的列。 例如:

$var="1";

第1,7,1列在某个行值1上然后选择那些列并显示值1在哪些列中

phpMyAdmin screenshot

4 个答案:

答案 0 :(得分:1)

您必须在查询中提及您的列名

如果您想检查完全匹配,可以按照以下步骤进行操作

 $var=$_GET['id'];
  $select="SELECT * FROM table WHERE column_name = '$var'";

如果要检查包含@var的列,可以执行以下操作

 $var=$_GET['id'];
  $select="SELECT * FROM table WHERE column_name like '%$var%'";

答案 1 :(得分:1)

您必须查看 INFORMATION_SCHEMA 数据库
提供您的数据库名称=> $column 提供您的专栏名称=> $sql = "SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = '" . $db . "' AND COLUMN_NAME = '" . $column . "'"; 然后:

    for(i=0; i<=entryArray.length; i++) {
        $(colorChange[entryArray[i]]['textfield']).ColorPicker({
            color: "FFFFFF",
            onChange: function (hsb, hex, rgb) {
                $(colorChange[entryArray[i]]['textfield']).val("#" + hex);
                $(colorChange[entryArray[i]]['className']).css(colorChange[entryArray[i]]['cssEntry'], "#" + hex);
            }
        })
    }

答案 2 :(得分:1)

查询将如下所示:

$var=$_GET['id'];
// for checking if both the column name and value are the same $var value 
$select= "SELECT ".$var." FROM table_name WHERE ".$var."='".$var."'"

OR

$var = $_GET['id'];
// for checking if both the column name and value are different
$select= = "SELECT ".$var." FROM table_name WHERE ".$var."='".$otherValue."'"

这是 SQLinjection易受攻击的代码。您应该在查询中使用它们之前检查变量。您还应该开始使用mysqliprepared statements

答案 3 :(得分:1)

简单的方法是使用php从所有列中获取数组:

SELECT column_name FROM  INFORMATION_SCHEMA.COLUMNS WHERE table_schema = 'YOUR-DB-NAME' and TABLE_NAME='YOUR-TABLE-NAME'

并使用'for'来创建'where' 例如:

for($i=0;$colums[$i];$i++) $where.=" or {$colums[$i]} like '%string%'";
$SQL="Select * from table where 1=1 $where";