使用循环PHP创建字符串SQL查询

时间:2014-05-26 17:48:06

标签: php sql

昨晚我在代码部分思考,我没有让它自动化...... 这就是为什么我没有它有一个对象......一行代码是我需要将它用于一个对象,用于任何项目。

我想要的是:

  1. 使用循环创建动态变量。 (这已经完成并且是一个好主意)
  2. 使用动态创建的变量创建动态SQL查询(这是我想要做的)
  3. 在这里,我们使用for循环创建动态变量:

        /* This variables has the inputs of an HTML
        * inputs are the name of a input, in this example there are 2, email and pass
        * inputs_val store the value of email and pass
        $inputs;
        $inputs_val;
    
        // Starting with an array        
        $arrayName = array();
        // Then with a for loop we fill the array
        for ($i=0; $i < count($inputs_val); $i++) {
                    // While $i are less than 2 (email, pass) $i++
            $var_nom = $inputs[$i];
            $var_val = $inputs_val[$i];
            $arrayName[$i] = $var_val;
                    // if we want to store the input name we use:
                    // $arrayName[$var_nom] = $var_val;
        }
    

    我的问题在这里:

    如何创建循环数组的字符串SQL查询?

    for ($i=0; $i < count($arrayName); $i++) { 
         $query = "SELECT usr_email, usr_pass FROM tbl_usr WHERE usr_email='$arrayName[$i]' AND usr_pass='$arrayName[$i]' LIMIT 1;";
    }
    

    错误在那里:usr_email =&#39; $ arrayName [$ i]&#39;和usr_pass =&#39; $ arrayName [$ i]&#39; 因为当循环以0开头时,usr_email是正常的,但是usr_pass没有,当循环再次传递时,usr_pass正常,但usr_email没有...

    我尝试使用$ i2 = $ i + 1;但也没有用。

    建议和想法?

1 个答案:

答案 0 :(得分:2)

$ arrayName [$ i]无法同时收到电子邮件和密码。这就是为什么它不起作用的原因。

如果我很清楚你想要什么,你可以这样做:

$inputs;
$inputs_val;
$arrayName = array();
for ($i = 0 ; $i < count($inputs_val) ; i++)
  $arrayName[$inputs[$i]][] = $inputs_val[$i];

然后(使用$ input包含&#34; user_email&#34;以及&#34; user_pass&#34;):

for ($i=0; $i < count($arrayName['usr_email']); $i++) { 
     $query = "SELECT usr_email, usr_pass FROM tbl_usr WHERE usr_email='$arrayName['user_email'][$i]' AND usr_pass='$arrayName['user_pass'][$i]' LIMIT 1;";
}