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

SQLSTATE [HY093]:अमान्य पैरामीटर संख्या:पैरामीटर परिभाषित नहीं किया गया था

यह त्रुटि आपको मिल रही है:

<ब्लॉकक्वॉट>

SQLSTATE[HY093]:अमान्य पैरामीटर संख्या:पैरामीटर परिभाषित नहीं किया गया था

ऐसा इसलिए है क्योंकि $values . में तत्वों की संख्या &$matches समान नहीं है या $matches 1 से अधिक तत्व शामिल हैं।

अगर $matches 1 से अधिक तत्व शामिल हैं, तो सम्मिलन विफल हो जाएगा, क्योंकि क्वेरी में संदर्भित केवल 1 कॉलम नाम है (hash )

अगर $values &$matches तत्वों की समान संख्या नहीं है, तो सम्मिलित भी विफल हो जाएगा, क्वेरी के कारण x params की अपेक्षा की जा रही है, लेकिन यह y डेटा प्राप्त कर रहा है $matches

मेरा मानना ​​है कि आपको यह सुनिश्चित करने की भी आवश्यकता होगी कि कॉलम हैश पर भी एक अद्वितीय अनुक्रमणिका है।

कोड को यहां आज़माएं :

<?php

/*** mysql hostname ***/
$hostname = 'localhost';

/*** mysql username ***/
$username = 'root';

/*** mysql password ***/
$password = '';

try {
    $dbh = new PDO("mysql:host=$hostname;dbname=test", $username, $password);
    /*** echo a message saying we have connected ***/
    echo 'Connected to database';
    }
catch(PDOException $e)
    {
    echo $e->getMessage();
    }

  
$matches = array('1');
$count = count($matches);
for($i = 0; $i < $count; ++$i) {
    $values[] = '?';
}

// INSERT INTO DATABASE
$sql = "INSERT INTO hashes (hash) VALUES (" . implode(', ', $values) . ") ON DUPLICATE KEY UPDATE hash='hash'";
$stmt = $dbh->prepare($sql);
$data = $stmt->execute($matches);

//Error reporting if something went wrong...
var_dump($dbh->errorInfo());

?>

आपको इसे थोड़ा सा अनुकूलित करने की आवश्यकता होगी।

मेरे द्वारा उपयोग की गई तालिका संरचना यहां है :

CREATE TABLE IF NOT EXISTS `hashes` (
  `hashid` int(11) NOT NULL AUTO_INCREMENT,
  `hash` varchar(250) NOT NULL,
  PRIMARY KEY (`hashid`),
  UNIQUE KEY `hash1` (`hash`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

कोड मेरे XAMPP सर्वर पर चलाया गया था जो MySQL 5.5.16 के साथ PHP 5.3.8 का उपयोग कर रहा है।



  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. तैयार कथनों का उपयोग कब *नहीं* करना है?

  3. JSON_ARRAY () - MySQL में मानों की सूची से JSON सरणी बनाएं

  4. MySQL गणितीय कार्य (पूरी सूची)

  5. MySQL इन्सर्ट इन सेलेक्ट