PHP object in int umwandeln

TheJoniii

Grünschnabel
Hallo,

Ich habe das Problem das Wenn ich ein Object mit
Code:
$int = (int) $Object
in einen int umwandle der value dan 0 ist obwohl ich wenn ich einen var_dump mache den value sehen kann.

Hier ist noch mein Ganzer Code:
Code:
<?php

session_start();

$requestPayload = file_get_contents("php://input");


$int = (int) $requestPayload;


var_dump($int);


 if(isset($_POST['update']))
 {

     require_once 'includes\dbh.inc.php';

     $query = "UPDATE users SET usersGeld='".$int."' WHERE usersName LIKE '{$_SESSION["usersName"]}'";
    
     $result = mysqli_query($conn, $query );


     if($result)
     {   
         echo $int;
         echo 'Data Updated';
     }else{
         echo 'Data Not Updated';
     }
     mysqli_close($conn);
}

Das Object ist
Code:
$requestPayload

Wo liegt mein Fehler?
Schonmahl danke im voraus
 
kannst du uns bitte die genaue Ausgabe von var_dump() zeigen?
Am besten von var_dump($requestPayload)
 
Also, dann funktioniert es ja. Diene Variabel ist ein Integer. Es ist int(123) und nicht 0 wie du schreibst.
Das Problem muss woanders liegen. Wo hat den $int den Wert 0?

Ps. bitte immer mit angeben wo im Code und auf welche Variable du den var_dump() machst.
 
Also, dann funktioniert es ja. Diene Variabel ist ein Integer. Es ist int(123) und nicht 0 wie du schreibst.
Das Problem muss woanders liegen. Wo hat den $int den Wert 0?

Ps. bitte immer mit angeben wo im Code und auf welche Variable du den var_dump() machst.
Ja die Variable ist ein Integer dass funktioniert aber wen ich z.b einen echo von dem int mache kommt 0 raus. Oder auch wen ich ein Update in der Datenbank mache. (auch 0) das verstehe ich nicht.
 
Der echo glaube ich nicht. So wie er in deinem Code-Schnipsel steht muss er 123 ausgeben. Ausser der Code, den ich sehe ist veraltet - dann kann schon ein weiterer Fehler drin sein.

Und gib doch mal $query aus.

Ps.
Falls usersGeld in der DB als Zahl definiert ist, dann solltest du das im SQL auch als Zahl übergeben. Also ohne die '

PPs.
Die User-id wird 1 zu 1 verglichen. Also kein LIKE sondern ein =

PHP:
$query = "UPDATE users SET usersGeld={$int} WHERE usersName = '{$_SESSION["usersName"]}'";
 
Der echo glaube ich nicht. So wie er in deinem Code-Schnipsel steht muss er 123 ausgeben. Ausser der Code, den ich sehe ist veraltet - dann kann schon ein weiterer Fehler drin sein.

Und gib doch mal $query aus.

Ps.
Falls usersGeld in der DB als Zahl definiert ist, dann solltest du das im SQL auch als Zahl übergeben. Also ohne die '

PPs.
Die User-id wird 1 zu 1 verglichen. Also kein LIKE sondern ein =

PHP:
$query = "UPDATE users SET usersGeld={$int} WHERE usersName = '{$_SESSION["usersName"]}'";
Der Code ist nicht veraltet. Ich habe nur $query angepasst so wie du es mir gesagt hast.
Wen ich $query mit einem echo ausgebe kommt raus:
UPDATE users SET usersGeld=0 WHERE usersName='joni'
joni ist der Name der in der Session gespeichert ist.

Wen ich zum Test eine variable mache mit einem wert z.b 100 und diese dan bei usersGeld anstatt $int einfüge funktioniert das ohne Probleme.
 
Verstehe ich das richtig?
PHP:
//Hier ist $int noch 123. Das ist der Vardump der int(123) ausgibt
var_dump($int);
 if(isset($_POST['update']))
 {
     require_once 'includes\dbh.inc.php';
     //und hier ist es dann 0
     $query = "UPDATE users SET usersGeld={$int} WHERE usersName = '{$_SESSION["usersName"]}'";
Überschreibst du in includes\dbh.inc.php die Variable $int?
 
Zurück