1

我有下面的部分代码:

while($array = $result->fetch_assoc() ){


    $second_query = "INSERT INTO".TBL_USERSDONTPAY."VALUES ($array[\"username\"], $array[\"password\"], '0',$array[\"userid|\"], )";

$second_result = $database->query($second_query);

}

查询似乎不起作用。有什么线索吗?我认为这是引号或其他东西的问题。如何才能真正传递数组元素?

这是我的整个代码我想将一行移到另一个表

$q = "SELECT * FROM ".TBL_USERS." WHERE username = '$subuser'"; 
          $result = $database->query($q); 

          if($result && $result->num_rows == 1){
              while($array = $result->fetch_assoc() ){
                  $second_query = "INSERT INTO" . TBL_USERSDONTPAY . "VALUES ('" . $array['username'] . "', '" . $array['password'] . "', '0', '" . $array['userid'] ."')";


                  $second_result = $database->query($second_query);
                  if($second_result){
                      // it worked!
                      $q = "DELETE FROM ".TBL_USERS." WHERE username = '$subuser'";
                      $database->query($q);
                  }
            }
          }
4

2 回答 2

3

您需要清理该查询并删除最后的逗号。

$second_query = "INSERT INTO " . TBL_USERSDONTPAY . " VALUES ('" . $array['username'] . "', '" . $array['password'] . "', '0', '" . $array['userid'] . "')";
于 2012-06-19T19:40:06.850 回答
2

我发现您的查询代码有几个问题

  1. 转义字符串中的数组索引:

    您可以结束字符串并将各部分连接在一起:

    $second_query = "INSERT INTO " . TBL_USERSDONTPAY . 
                    " VALUES ('" . $array['username'] . "', '" . $array['password'] . "', '0', '" . $array['userid'] . "')";
    

    或使用以下{$var}语法:

    $second_query = "INSERT INTO " . TBL_USERSDONTPAY . 
                    " VALUES ('{$array['username']}', '{$array['password']}', '0', '{$array['userid']}')";
    
  2. 缺少空格(请参阅上面的示例代码..您缺少表名前后的空格)

  3. 缺少字段名称。如果您以正确的顺序指定所有字段,您的查询可能会起作用,但是当您稍后更改表时(例如,向表中添加字段)会失败

    $second_query = "INSERT INTO " . TBL_USERSDONTPAY . 
                    " (username, password, foo, user_id)".
                    " VALUES ('{$array['username']}', '{$array['password']}', '0', '{$array['userid']}')";
    

    请注意,您实际上应该在上面示例的第二行中插入正确的字段名称。您可以在MySQL docs for INSERT中找到更多信息

于 2012-06-19T20:09:49.113 回答