2016-04-25 102 views
-2

有人解決我的問題。更新查詢不起作用。 更新錯誤查詢此步驟...數組到字符串轉換$ query。=「image ='{$ image}'」; -------------------------------------------------- -------------------------------------------------- --------------------------------陣列到字符串轉換

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

    $file = rand(1000,100000)."-".$_FILES['image']['name']; 
    $file_loc = $_FILES['image']['tmp_name']; 
    $folder="uploads/"; 

    $new_file_name = strtolower($file); 
    $image =str_replace(' ','-',$new_file_name); 
    move_uploaded_file($file_loc,$folder.$image); 

    $firstname  = $_POST["firstname"]; 
    $lastname  = $_POST["lastname"]; 
    $address1  = $_POST["address1"]; 
    $address2  = $_POST["address2"]; 
    $city   = $_POST["city"]; 
    $state   = $_POST["state"]; 
    $zipcode  = $_POST["zipcode"]; 
    $email   = $_POST["email"]; 
    $country  = $_POST["country"]; 
    $phone   = $_POST["phone"]; 
    $image   = $_FILES["image"]; 
    $username  = $_POST["username"]; 
    $passwordold = $_POST["oldpassword"]; 
    $passwordone = $_POST["passwordone"]; 
    $passwordtwo = $_POST["passwordtwo"]; 
    $sessions  = $_SESSION['admin_id']; 


    $query = "UPDATE user SET "; 
    $query .= "firstname = '{$firstname}', "; 
    $query .= "lastname = '{$lastname}', "; 
    $query .= "addressone = '{$address1}', "; 
    $query .= "addresstwo = '{$address2}', "; 
    $query .= "city = '{$city}', "; 
    $query .= "state = '{$state}', "; 
    $query .= "zipcode = '{$zipcode}', "; 
    $query .= "email = '{$email}', "; 
    $query .= "country = '{$country}', "; 
    $query .= "phone = '{$phone}', "; 
    $query .= "image = {$image} "; 
    $query .= "WHERE id = {$sessions} "; 
    $query .= "LIMIT 1"; 
    $result = mysqli_query($connection, $query); 

    echo "<pre>"; 
    print_r($_FILES); 
    print_r($_POST); 
    echo "</pre>"; 
} 
+0

什麼類型的列是表中的'image'?應該是一個blob。 – fislerdata

+0

花時間閱讀['$ _FILES']的文檔(http://php.net/manual/en/reserved.variables.files.php) – Sean

+0

我的猜測是你真的想改變'$ image = $ _FILES [「image」];'到'$ image = $ image;'因爲你想要新的文件名而不是原來的名字。或者只是刪除該行,並使用'$ image = str_replace('',' - ',$ new_file_name)中設置的值; – Sean

回答

0

$ _FILES [「image」]是一個數組。你只能在sql查詢中傳遞字符串。可能是你需要序列化數組,然後將其存儲在數據庫中。