다음 조건 코드를 사용하여 적절한 사용자 이름이없는 레코드가 있으면 새 레코드를 삽입하고 존재하는 경우 레코드를 업데이트합니다. 이것은 잘 작동합니다.sql - 기존 정보를 무시하지 않고 업데이트
그러나 지금은 새 레코드를 삽입하고 이름과 성을 삽입하고 전화 정보가 비어있는 상태로 세부 정보를 입력하면 괜찮습니다. 그런 다음 전화 레코드로 레코드를 업데이트하려는 경우 이름과 주소 정보가 대체되지 않습니다.
내가 알고 싶은 것은 정보를 업데이트하기 위해 PHP 웹 양식을 채울 수있는 쉬운 방법이 있는지, 업데이트 할 필드의 내용이 맞는지 여부입니다. I는 다시 아래 PHP 코드를 전달하는 자바 스크립트 함수에 전달 된 사용자의 입력을 얻기
<input type="text" name="uniquename" />
를 사용하고있다. 이것이 가능하지 않다면 비어 있지 않은 userinput에 해당하는 필드 만 업데이트하기 위해 일부 SQL/PHP 마술을 사용하는 쉬운 방법이 있습니까?
$usernameQuery = "select username from USERS where username = '" . $con->escape_string($username) . "'";
$xblah = $con->query($usernameQuery);
while ($row = mysqli_fetch_assoc($xblah))
{
$checkUsername = $row['username'];
}
if ($checkUsername == null) {
$userQuery = "INSERT INTO USERS VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
if ($userInfo = $con->prepare($userQuery)) {
$userInfo->bind_param("ssssssssssssssssssss", $username, $firstname, $lastname, $flaggedauctions, $lastauction, $street1, $city1, $postcode1, $street2, $city2, $postcode2, $phone, $mobilephone, $fax, $email, $website, $bank, $banknumber, $accountnumber, $comments);
$userInfo->execute();
$userInfo->close();
echo "true";
} else {
echo "false";
}
print_r($con->error);
}
else if ($checkUsername == $username) {
$userQuery = "UPDATE USERS SET firstname = ?, lastname = ?, flaggedauctions = ?, lastauction = ?, street1 = ?, city1 = ?, postcode1 = ?, street2 = ?, city2 = ?, postcode2 = ?, phone = ?, mobilephone = ?, fax = ?, email = ?, website = ?, bank = ?, banknumber = ?, accoutnumber = ? WHERE username = ?";
if ($userInfo = $con->prepare($userQuery)) {
$userInfo->bind_param("sssssssssssssssssss", $firstname, $lastname, $flaggedauctions, $lastauction, $street1, $city1, $postcode1, $street2, $city2, $postcode2, $phone, $mobilephone, $fax, $email, $website, $bank, $banknumber, $accountnumber, $username);
$userInfo->execute();
$userInfo->close();
echo "true";
} else {
echo "false";
}
print_r($con->error);
}
흠, 감사 INTO를 교체합니다. bindArgs는 어떻게됩니까? –
내 PHP 기술은 약간 녹슬었지만 $ bindArgs를 bind_param 함수에 전달할 수 있다고 생각합니다. PHP에서 배열을 가변 숫자 인수로 전달할 수 있다고 생각합니다. – oscarkuo
그래서 두 개의 개별 솔루션입니까? 각 변수에 대해 bindARgs를 사용할 수 있습니까? –