PDO вернул успех, но в базе данных не обновлено никаких данных - PullRequest
0 голосов
/ 08 апреля 2020

, когда я пытаюсь обновить строку с помощью функции PDO, она возвращает успех , и когда я проверяю базу данных, данные не обновлялись

, поэтому я следовал за этим вопросом PDOStatement: : execute () возвращает true, но данные не обновляются , который уже имеет ответы, но не работает здесь, вот что я сделал

enter image description here

Ниже приведен код, который я пытался

<?php
$Fuid = '105199239598939142575';
sendOT($Fuid);
echo '<br>Below is var_dump() Rsult<br>';
check($Fuid);

function sendOT($Fuid) {
    try {
        $phone = '6381211774';
        $otp = '1234';
        $conn = new PDO("mysql:host=" . DBHOST . ";port=3306;dbname=" . DBNAME, DBUSER, DBPASS);
        $conn->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
        $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $conn->exec("SET CHARACTER SET utf8");
        $stmt2 = $conn->prepare("UPDATE members SET verification_code=:veri_code AND phone=:phone WHERE Fuid=:Fuid");
        $stmt2->bindParam(':Fuid', $Fuid, PDO::PARAM_STR);
        $stmt2->bindParam(':veri_code', $otp, PDO::PARAM_STR);
        $stmt2->bindParam(':phone', $phone, PDO::PARAM_STR);
        $stmt2->execute();
        echo 'Updated succeeded';
    } catch (Exception $e) {
        echo $e;
    }
}

function check($Fuid) {
    $conn = new PDO("mysql:host=" . DBHOST . ";port=3306;dbname=" . DBNAME, DBUSER, DBPASS);
    $conn->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $conn->exec("SET CHARACTER SET utf8");
    $stmt2 = $conn->prepare("SELECT * FROM members WHERE Fuid=:Fuid");
    $stmt2->bindParam(':Fuid', $Fuid, PDO::PARAM_STR);
    $stmt2->execute();
    $unr = $stmt2->fetch(PDO::FETCH_ASSOC);
    var_dump($unr);
}
?>

Выход

enter image description here

согласно ответ на этот вопрос PDOStatement :: execute () возвращает true, но данные не обновляются возможно, нет строки с WHERE, поэтому я попытался с тем же WHERE с SELECT запросом и он показал результат.

ПОЧЕМУ мой запрос ОБНОВЛЕНИЕ не обновляется в базе данных?

1 Ответ

0 голосов
/ 11 апреля 2020

После многих попыток мне удалось обновить этот запрос.

$stmt2 = $conn->prepare("UPDATE members SET verification_code=:veri_code, phone=:phone WHERE Fuid=:Fuid");

это сработало после удаления AND из запроса, используя como , в запросах на обновление.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...