2017-11-27 7 views
-1

私は画像のアップロードとテキスト入力を持つフォームを持っています。 profile_pictureフィールドをNULLに置き換え続けます。したがって、動的更新クエリを作成しようとしています.1つの値が空であれば、クエリからすべて除外されます。MYSQLへのPHP PDO動的更新クエリ

何か助けていただければ幸いです。

画像のアップロード:

if (!empty($_FILES['profile_picture']) && $_FILES['profile_picture']['error'] == UPLOAD_ERR_OK) { 

    // Rename the uploaded file 
    $uploadName = $_FILES['profile_picture']['name']; 
    $tmp_name = $_FILES['profile_picture']['tmp_file']; 
    $ext = strtolower(substr($uploadName, strripos($uploadName, '.')+1)); 
    $filename = round(microtime(true)).mt_rand().'.'.$ext; 

if (move_uploaded_file($_FILES['profile_picture']['tmp_name'],'../profile_picutres/'. $filename)) { 

} 

} 

更新クエリ:以下

$stmt = $dbh->prepare("UPDATE 001_user_table_as SET profile_picture=:profile_picture, first_name=:first_name, last_name=:last_name, phone_number=:phone_number, nationality=:nationality, years_experience=:years_experience, data=:data WHERE id=:id"); 

$stmt->bindParam(':profile_picture', $filename); 
$stmt->bindParam(':first_name', $first_name); 
$stmt->bindParam(':last_name', $last_name); 
$stmt->bindParam(':phone_number', $phone_number); 
$stmt->bindParam(':nationality', $nationality); 
$stmt->bindParam(':years_experience', $years_experience); 
$stmt->bindParam(':data', $cv_data); 
$stmt->bindParam(':id', $user_id); 

if($stmt->execute()){ 
$response["message"] = 'success'; 
}else{ 
$response["message"] = 'error'; 
$errors++; 
} 
+0

参考のために完全なエラーメッセージと生成された文 – Jens

+1

を追加してください。[PDOの例: PDOのためのWHERE句を動的に作成する方法](https://phpdelusions.net/pdo_examples/dynamical_where) –

+0

あなたの(複雑すぎる)コードでは、少なくとも二重コロンを使用していますが、その他の問題があります。結果のクエリをエコーし​​て、SQLだけを見てみませんか? –

答えて

1

は、入力が空である、それはそのフィールド内の既存のデータを使用しますとだけでなく、受け入れるソリューションであり、 $_POST変数ですが、すべての変数です。

​​