2016-07-19 6 views
0

Ich habe einen Code PHP für die Aktualisierung der Datenbank gefunden, aber es ist nur für zwei Felder, die ID und Element ist. Wie wäre es, wenn ich 7 Felder habe, das ist id_admin, Name, E-Mail, Adresse, Telefonnummer, Benutzername und Passwort, und der Tabellenname ist admin. Dies ist der Code, den ich gefunden habe.Wie kann ich meinen PHP-Code erweitern, um weitere Datenbankfelder hinzuzufügen?

<?php 
error_reporting(0); 
include("db_config.php"); 

// array for JSON response 
$response = array(); 

if(isset($_POST['id']) && isset($_POST['item'])) { 
    $id=$_POST['id']; 
    $item=$_POST['item']; 

    $result = mysql_query("update myorder set item='$item' where id='$id' ") or die(mysql_error()); 

    $row_count = mysql_affected_rows(); 

    if($row_count>0){ 
    $response["success"] = 1; 
    $response["message"] = "Updated Sucessfully."; 
    } 
    else{ 
    $response["success"] = 0; 
    $response["message"] = "Failed To Update."; 
    } 
// echoing JSON response 
echo json_encode($response); } ?> 
+1

Sie sollten immer parametrisierte Abfragen verwenden. –

+0

entfernen Sie einzelne Anführungszeichen aus diesem ID = $ ID – JYoThI

+0

Was ist das? Ich weiß nicht viel über PHP –

Antwort

0

ändern diese Zeilen:

if(isset($_POST['id']) && isset($_POST['item'])) { 
    $id=$_POST['id']; 
    $item=$_POST['item']; 
    $result = mysql_query("update myorder set item='$item' where id='$id' ") or die(mysql_error()); 

mit diesen:

if(isset($_POST['submit'])) { 
    $id=htmlspecialchars($_POST['id']); 
    $item=htmlspecialchars($_POST['item']); 
    $name=htmlspecialchars($_POST['name']); 
    $email=htmlspecialchars($_POST['email']); 
    //and so on... 
    $result = mysql_query("update myorder set item=$item, name=$name, email= $email ... where id=$id ") or die(mysql_error()); 
+0

Da Sie Anfänger sind, scheint die Verwendung der Erweiterung mysql_ * einfacher für Sie zu sein. Aber ich hoffe, dass Sie so schnell wie möglich zu mysqli oder pdo wechseln werden. –

0

Warnung mysql_query, mysql_fetch_array, mysql_connect etc .. Erweiterungen in PHP 5.5.0 veraltet waren und Es wurde in PHP 7.0.0 entfernt. Stattdessen sollte die Erweiterung MySQLi oder PDO_MySQL verwendet werden.

 <?php 
     error_reporting(0); 

    //db connection 

    global $conn; 

     $servername = "localhost"; //host name 

     $username = "username"; //username 

     $password = "password"; //password 

     $mysql_database = "dbname"; //database name 

    //mysqli prepared statement 

     $conn = mysqli_connect($servername, $username, $password) or die("Connection failed: " . mysqli_connect_error()); 

     mysqli_select_db($conn,$mysql_database) or die("Opps some thing went wrong"); 


     // array for JSON response 
    $response = array(); 

    if(isset($_POST['id']) && isset($_POST['item'])) { 
     $id=$_POST['id']; 
     $item=$_POST['item']; 




    $stmt = $conn->prepare("update myorder set item=?,name=?,id_admin=?,email=?,address=?,phonenumber=? where id=? "); 

        $stmt->bind_param('ssissii',$item,$name,$id_admin,$email,$address,$phonenumber,$id); 

        The argument may be one of four types: 

        i - integer 
        d - double 
        s - string 
        b - BLOB 
        //change it by respectively 

        $stmt->execute(); 

        $row_count= $stmt->affected_rows; 

        if($row_count>0) 
        { 
       $response["success"] = 1; 
       $response["message"] = "Updated Sucessfully."; 
       } 
       else{ 
       $response["success"] = 0; 
       $response["message"] = "Failed To Update."; 
       } 
      // echoing JSON response 
      echo json_encode($response); 


        $stmt->close(); 
        $conn->close(); 

      } 





     ?>   
+0

Ich sah diese Antwort hatte eine Down-Abstimmung, warum sollte jemand abstimmen? (bitte erklären Sie, wenn Sie nach unten gehen) scheint die korrekteste Antwort in diesem Beitrag zu sein. Als Anfänger sollten Sie damit beginnen, den richtigen Weg zu gehen, und vorbereitete Aussagen sind der richtige Weg. mysql ist veraltet und aus irgendeinem Grund versuchen Sie zumindest mysqli. –

+0

@ M.I. Ich stimme nie jemanden ab –

-1

Verwenden Sie immer parametrisierte Abfragen, wenn der Benutzer Wert in Abfrage eingefügt werden muss.

Beispiel:

$statement = $conn->prepare("update admin set name=?, email=?, address=?, phonenumber=?, username=?, password=? WHERE id_admin=?"); 
$statement->bind_param('ssssssi', $name, $email, $address, $phonenumber, $username, $password, $id_admin); 
$statement->execute(); 
Verwandte Themen