[PHP/MySQL] Warum speichert er nicht?

  • Guten Tag liebe Community,


    ich mache zurzeit ein Privaten und ein einfaches Control Panel und habe nun problem beim Speichern nur verstehe nicht warum er das nicht Speichert.
    Es steht zwar Erfolgreich gespeichert, nur er hat sich nicht gespeichert.
    CODE:


    Die Logs finde ich nicht.


    LG,
    Skoam

  • Warum führst du überhaupt die Abfrage zwei mal durch?

    PHP
    if($query = mysql_query("UPDATE users SET Level='$Level',Geld='$Geld',Fraktion='$Fraktion',Rang='$Rang',Bank='$Bank',Gehalt='$Gehalt',Skin='$Skin',Activated='$Activated' WHERE id='$idplayeredit'"))
                            	{
                               	echo "Erfolgreich gespeichert!";
                            	} else echo "Fehler beim Speichern";


    Das würde reichen.
    Außerdem solltest du MySQLi oder PDO nutzen. Bei deinem jetzigen Code kann man sofort in die Datenbank eindringen.

  • Nutze es jetzt so:

    PHP
    <?php
    							$NEW_CONNECTION=mysqli_connect("localhost", "root", "", "samprp");
    							if($query = mysqli_query($NEW_CONNECTION, "UPDATE users SET Level='$Level',Geld='$Geld',Fraktion='$Fraktion',Rang='$Rang',Bank='$Bank',Gehalt='$Gehalt',Skin='$Skin',Activated='$Activated' WHERE id='$idplayeredit'"))
    							{
    								echo "Erfolgreich gespeichert!";
    							}else echo "Fehler beim Speichern";
    					?>


    Nur es speichert sich immer noch nicht.


    LG,
    Skoam

  • schreibe das mal so ohne die IF Abfrage. Und Poste den Fehler sofern einer auftritt. Musst dafür error_reporting auf E_ALL setzen welches du sowieso lassen solltest solange du lokal daran arbeitest


    PHP
    mysqli_query($NEW_CONNECTION, "UPDATE users SET Level='$Level',Geld='$Geld',Fraktion='$Fraktion',Rang='$Rang',Bank='$Bank',Gehalt='$Gehalt',Skin='$Skin',Activated='$Activated' WHERE id='$idplayeredit'") or die (mysqli_error());
  • daran würden msqli und pdo auch nichts ändern sofern er nicht die variablen escaped oder escapen lässt zb durch prepared statements

    Prepared Statements (vorbereitete Statamente) haben keinen Zusammenhang mit dem Escapen.
    Außerdem ist MySQL veraltet und wird von PHP bald nicht mehr unterstützt, dann kann das Ganze sowieso
    in den Müll geschmissen werden.

  • Prepared Statements (vorbereitete Statamente) haben keinen Zusammenhang mit dem Escapen.
    Außerdem ist MySQL veraltet und wird von PHP bald nicht mehr unterstützt, dann kann das Ganze sowieso
    in den Müll geschmissen werden.


    In Bezug zu PDO würde ich das nicht wirklich sagen er möchte die Funktion PDO::prepare ansprechen, welche dazu genutzt wird um die Querys sicher zu machen gegen SQL injections.
    http://php.net/manual/de/pdo.prepare.php


    Diese funktion ersetz quasi die für mysql_real_escape gedachte Funktion PDO::quote, welche spezielle Zeichen escaped.
    http://php.net/manual/de/pdo.quote.php