PHP Insert to MySQL

  • PHP

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von 3daycliff.

    PHP Insert to MySQL

    Hallo,
    ich möchte per PHP Script einen neuen Eintrag in meiner MySQL Datenbank machen.

    Dazu verwendete ich immer:

    PHP-Quellcode

    1. <?php
    2. @mysql_conntect("localhost","username","pw") OR die("Verbindung konnte nicht hergestellt werden: ".mysql_error());
    3. mysql_select_db(Datenbank) or die ("Datenbank existiert nicht");
    4. $result = mysql_query("INSERT INTO SubDatenbank (titel1,titel2, ..., titelx) VALUES ('wert1', 'wert2', ..., 'wertx')");
    5. ?>


    aber nach der ausführung erscheint zwar kein Fehler, trotzdem wenn ich die DB aktualisiere sind keine neuen Werte eingetragen. Wo ist er Fehler?
    ich würde an deiner stelle direkt mit mysqli anfangen.

    Hier mal ein simples beispiel für Objektorientiert:
    Spoiler anzeigen

    PHP-Quellcode

    1. <?php
    2. $mysqli = @new mysqli('localhost', 'benutzer', 'passwort', 'datenbank');
    3. if ($mysqli->connect_error) {
    4. die('Connect Error: ' . $mysqli->connect_error);
    5. }
    6. if ($result = $mysqli->query("INSERT INTO tabelle (titel1, titel2, titel3) VALUES ('wert1', 'wert2', 1) ")) {
    7. printf("INSERT INTO returned %d rows.\n", $result->num_rows);
    8. $result->close();
    9. } else {
    10. echo 'Error:'.$result->mysqli_error($mysqli);
    11. }
    12. // oder Normaler Stil
    13. $mysqli = mysqli_connect('localhost', 'benutzer', 'passwort', 'datenbank');
    14. if (mysqli_connect_errno()) {
    15. die('Connect Error: ' . mysqli_connect_error());
    16. }
    17. if ($result = mysqli_query($mysqli, "INSERT INTO tabelle (titel1, titel2, titel3) VALUES ('wert1', 'wert2', 1) ")) {
    18. printf("INSERT INTO returned %d rows.\n", mysqli_num_rows($result));
    19. /* free result set */
    20. mysqli_free_result($result);
    21. } else {
    22. echo 'Error:'.$result->mysqli_error($mysqli);
    23. }
    24. ?>


    Wenn du es dennoch nicht willst hierzu deinem Problem:
    Ich gehe mal davon aus das deine query mal falsch ist
    so überprüf bitte mal ob kein ERRROR in deiner Query ist:

    PHP-Quellcode

    1. if ($result = mysql_query("INSERT INTO SubDatenbank (titel1,titel2, ..., titelx) VALUES ('wert1', 'wert2', ..., 'wertx')")) {
    2. echo 'Ok';
    3. } else {
    4. echo 'Error: '.mysql_error();
    5. }
    Okäy, danke für eure Hilfe.
    Das Eintragen funktioniert soweit wieder.
    Mit dem Code:

    PHP-Quellcode

    1. <?php
    2. $mysqli = @new mysqli('localhost', 'ID', 'PW', 'DB');
    3. if ($mysqli->connect_error) {
    4. die('Connect Error: ' . $mysqli->connect_error);
    5. }
    6. if ($result = $mysqli->query("INSERT INTO Table (someText, someDate, someInteger) VALUES ('Test', '20014-04-04', 5) ")) {
    7. printf("INSERT INTO returned %d rows.\n", $result->num_rows);
    8. $result->close();
    9. } else {
    10. echo 'Error:'.$result->mysqli_error($mysqli);
    11. }
    12. ?>


    Werden zwar ornungsgemäß Daten eingetragem, ich erhallte aber folgende Fehlermeldung:
    INSERT INTO returned 0 rows.

    Fatal error: Call to a member function close() on a non-object in /data/multiserv/users/.../www/newAcc.php on line 8

    Hi,

    erstmal du führst ein INSERT-Statement aus. Und wie soll man aus einem INSERT bitte num_rows rausbekommen? Ein Objekt wird nur zurückgegeben bei SHOW oder SELECT etc... Bei INSERT nicht. Du bekommst in $result dann entweder true oder false. Mit anderen Worten, $result ist in deinem Fall kein Objekt sondern ein boolean. Ansonsten könnte die Fehlermeldung ja auch so nicht eindeutiger sein. Übersetzt steht da in etwa, dass du versuchst, von einem Nicht-Objekt (ah, schau hier steht's, $result ist KEIN Objekt) die Methode close() aufzurufen.

    Generell verwirrt mich die Abfrage in Zeile 6. Ich mein, der prüft doch, ob die ZUWEISUNG von $mysqli->query an Variable $result erfolgreich ist. Das heißt selbst wenn $result am Ende den Wert false hat, sollte doch die Bedingung trotzdem wahr sein, da die Zuweisung ja erfolgreich war. Belehrt mich mal wer eines besseren falls ich schmarrn erzähle.


    Link :thumbup:
    Hello World