Zuerst, nach einer anderen SO post, habe ich versucht, die beiden Aussagen zu einer zu kombinieren.Kombination von zwei vorbereiteten Anweisungen funktioniert nicht
<?php
$conn->setAttribute(PDO::ATTR_EMULATE_PREPARES, 1);
$sql = "UPDATE users SET pass = :password WHERE usrn = :id;
SELECT prim FROM users WHERE usrn = :id;";
$stmt = $conn->prepare($sql);
$stmt->bindParam(":id", $_SESSION["idPersist"]);
$stmt->bindParam(":password", password_hash($_POST["password"], PASSWORD_DEFAULT));
$stmt->execute();
$result = $stmt->fetch(PDO::FETCH_ASSOC); //// line 71
?>
Dies jedoch hielt den Fehler: Fatal error: Uncaught PDOException: SQLSTATE[HY000]: General error on line 71
.
Ich konnte keine relevanten Lösungen für dieses Problem finden, daher entschied ich mich, die beiden Aussagen einfach aufzuteilen.
<?php
$sql = "UPDATE users SET pass = :password WHERE usrn = :id";
$stmt = $conn->prepare($sql);
$stmt->bindParam(":id", $_SESSION["idPersist"]);
$stmt->bindParam(":password", password_hash($_POST["password"], PASSWORD_DEFAULT));
$stmt->execute();
$sql = "SELECT prim FROM users WHERE usrn = :id";
$stmt = $conn->prepare($sql);
$stmt->bindParam(":id", $_SESSION["idPersist"]);
$stmt->execute();
$result = $stmt->fetch(PDO::FETCH_ASSOC);
$_SESSION["session"] = $result["prim"];
?>
Aber ein var_dump($result)
ist Bool(false)
Rückkehr, so offensichtlich etwas nicht funktioniert richtig mit dem Ergebnis holen und es als eine Variable zu speichern, so scheint es, in beiden Fällen.
Ich bin neu in PHP und MySQL, also bin ich jetzt ratlos.
Versuchen Sie mit fetchAll statt holen – Akintunde007
@Akintunde Ich werde versuchen, dass thx – Anthony
@Akintunde Fetch tatsächlich funktioniert. Ich habe gerade eine Ausführungsanweisung verfehlt. Ich schätze, ich habe zu lange auf einen Bildschirm gestarrt. Ich hätte schwören können, dass ich das überprüft habe:/Gibt es keine Möglichkeit, die beiden Aussagen zu kombinieren? – Anthony