我是这个网站的新手和编码所以如果你遇到一些新手的错误,请放轻松。
我有一个表单,在提交时它会将数据插入两个单独的表(users,users_addresses)。用户地址应通过用户ID链接回用户。
我已经看到了几种可以用于此类问题的方法(并且没有IC可以使用),但我正在寻求帮助,看看哪种方法最好。
这是我到目前为止所做的:
public function createNewUser($details, $active)
{
$password = $details["password"];
$username = strtolower($details["username" ]);
$firstname = strtolower($details["firstname"]);
$lastname = strtolower($details["lastname" ]);
$email = strtolower($details["email" ]);
$sex = strtolower($details["sex" ]);
$datepicker = strtolower($details["datepicker" ]);
$disabled = ($active) ? "0" : "1";
$address1 = strtolower($details["address1" ]);
$address2 = strtolower($details["address2" ]);
$province = strtolower($details["province" ]);
$city = strtolower($details["city" ]);
$district = strtolower($details["district" ]);
$zipcode = strtolower($details["zipcode" ]);
$
$sql = "INSERT INTO users VALUES (NULL, LOWER('$username'), MD5('$password'), LOWER('$firstname'), LOWER('$lastname'), LOWER('$email'), LOWER('$sex'), LOWER('$datepicker'), 0, NOW(), $disabled, 0)";
$resultSet = $this->db->query($sql);
return $this->db->getInsertId();
$sql = "INSERT INTO users_addresses VALUES (NULL, LOWER('$userid'), LOWER('$address1'), LOWER('$address2'), LOWER('$province'), LOWER('$city'), LOWER('$district), LOWER('$zipcode')";
$resultSet = $this->db->query($sql);
return $this->db->getInsertId();
}
答案 0 :(得分:0)
你的代码有些不对劲/奇怪:
strtolower
和LOWER
。无需两次。return
。这是“无法访问的代码”。修复可能是将第一个return $this->db->getInsertId()
替换为$userid = $this->db->getInsertId()
,将第二个替换为return $userid
。
祝你好运,欢迎来到SO。
答案 1 :(得分:0)
第二个查询永远不会执行,因为在所有条件下执行之前都有一个return语句。即使更正了,第二个查询中的$ user_id也没有填充从第一个查询获得的值。解决方案如下:
第一
return $this->db->getInsertId();
应替换为
$user_id=$this->db->getInsertId();
第二
return $this->db->getInsertId();
应替换为
return $user_id