Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

पीडीओ तैयार विवरण पर अमान्य पैरामीटर संख्या

धिक्कार है, मैंने घंटों बाद समस्या का पता लगाया है...

// $connection is the PDO object;
// $full_data contains:
// $full_data[$i]["address"]
// $full_data[$i]["phone"]
// $full_data[$i]["email"]
// $full_data[$i]["user_id"]
// ==> $full_data[$i]["surname"] // not used but present
// ==> $full_data[$i]["name"] // not used but present

सरणी डेटा ["surname"] . क्वेरी में सहेजा नहीं गया है और ["name"] त्रुटि उत्पन्न करें। ऐसा लगता है जैसे execute (); सटीक सरणी डेटा संरचना की आवश्यकता है। मैंने इसका उपयोग करके समस्या का समाधान किया है:

$sql = "UPDATE users_table SET city = :address, phone = :phone, email = :email, admin_id = :admin_id, admin_name = :admin_name WHERE user_id = :user_id";
$statement = $connection->prepare ($sql);

// must be removed ==> $statement->bindParam (':admin_id', trim($admin_id), PDO::PARAM_INT);
// must be removed ==> $statement->bindParam (':admin_name', trim($admin_name), PDO::PARAM_STR);

for ($i = 0; $i < count($full_data); $i++) {
    $full_data[$i]["admin_name"] = "the admin name";
    $full_data[$i]["admin_id"] = "100";
    unset ($full_data[$i]["surname"]); // IMPORTANT: must remove the unused vars
    unset ($full_data[$i]["name"]); // IMPORTANT: must remove the unused vars
}



foreach ($full_data as $value) {
    // bindParam can be avoided, but it's recommended for data type security
    $statement->bindParam(':address', trim($value['address']), PDO::PARAM_STR);
    $statement->bindParam(':phone', trim($value['phone']), PDO::PARAM_STR);
    $statement->bindParam(':email', trim($value['email']), PDO::PARAM_STR);
    $statement->bindParam(':admin_id', trim($value['admin_id']), PDO::PARAM_INT);
    $statement->bindParam(':admin_name', trim($value['admin_name']), PDO::PARAM_STR);

    $ok = $statement->execute ($value);
    $num = $statement->rowCount ();
}

} catch (PDOException $e) {
    return $e->getMessage ();
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. सभी यूनिकोड वर्णों को स्वीकार करने के लिए कौन सा MySQL संयोजन सबसे अच्छा है?

  2. MySQL लेफ्ट जॉइन + मिन

  3. SQL - विशिष्ट मान वाली पंक्तियों की गिनती

  4. Winform सूची बॉक्स में कॉलम कैसे छुपाएं?

  5. नोड.जेएस का उपयोग करके mysql में बड़ी मात्रा में डेटा डालने में त्रुटि त्रुटि कोड:'ECONNRESET')