2017-05-24 5 views
1

Ich möchte ein mehrdimensionales Array in Mysql.Post mehrdimensionalen Array in Mysql

Der Code, den ich kennen muss.

if (isset($_POST['husers[]'])) { 
    $query = $db->prepare("UPDATE `users` SET highlighted_users = (?) WHERE user_id = '" . $userId . "'"); 
    $query->bindParam(1, $_POST['husers[]']); 
    $query->execute(); 
} 

Die Daten habe ich:

array (size=4) 
    'text' => string 'bla' (length=3) 
    'another text' => &string '' (length=0) 
    'husers' => 
    array (size=5) 
     0 => string '100486' (length=6) 
     1 => string '13474' (length=5) 
     2 => string '179339' (length=6) 
     3 => string '184729' (length=6) 
     4 => string '150593' (length=6) 

Antwort

0

Die Funktion serialize wird für Sie den Trick.

if (isset($_POST['husers'])) { 
    $query = $db->prepare("UPDATE `users` SET highlighted_users = (?) WHERE user_id = '" . $userId . "'"); 
    $query->bindParam(1, serialize($_POST['husers'])); 
    $query->execute(); 
} 

Wenn Sie es aus der Datenbank ziehen werden Sie die Funktion unserialize, um es zu einem normalen Array verwenden müssen.

0

Sie können json_encode Funktion von PHP verwenden. Dadurch können Sie Daten als String speichern. Beim Abrufen von der Datenbank, durch json_decode Funktion yu kann es Array wieder machen.

if (isset($_POST['husers'])) { 
    $query = $db->prepare("UPDATE `users` SET highlighted_users = (?) WHERE 
    user_id = '" . $userId . "'"); 
    $query->bindParam(1, json_eoncode($_POST['husers'])); 
    $query->execute(); 
} 
0

Wenn Sie die Daten als einfaches Komma-getrennte Zeichenfolge gespeichert werden soll:

if(isset($_POST['husers'])){ // changed $_POST key reference 
    $husers_csv=implode(',',$_POST['husers']); 
    $stmt=$db->prepare("UPDATE `users` SET highlighted_users=? WHERE user_id=?"); // removed(), added another placeholder 
    $stmt->bindParam(1,$husers_csv); 
    $stmt->bindParam(2,$user_id); 
    $status=$stmt->execute(); 
} 
0

Sie können json_encode diese Daten, dann speichern Sie es als JSON-String. Wenn Sie die Daten wieder herausziehen, einfach json_decode(), um Ihr Array zurück zu bekommen.

if (isset($_POST['husers'])) { 
    $query = $db->prepare("UPDATE `users` SET highlighted_users = (?) WHERE user_id = '" . $userId . "'"); 
    $query->bindParam(1, json_encode($_POST['husers'])); 
    $query->execute(); 
} 
Verwandte Themen