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

SQLSTATE [HY093]:अमान्य पैरामीटर संख्या:बाध्य चर की संख्या लाइन 102 पर टोकन की संख्या से मेल नहीं खाती

आपने यहां अपनी सभी बाइंडिंग नहीं बांधी हैं

$sql = "SELECT SQL_CALC_FOUND_ROWS *, UNIX_TIMESTAMP(publicationDate) AS publicationDate     FROM comments WHERE articleid = :art 
ORDER BY " . mysqli_escape_string($order) . " LIMIT :numRows";

$st = $conn->prepare( $sql );
$st->bindValue( ":art", $art, PDO::PARAM_INT );

आपने :numRows नाम से एक बाइंडिंग की घोषणा की है, लेकिन आप वास्तव में इससे कुछ भी नहीं बांधते हैं।

UPDATE 2019:मुझे इस पर वोट मिलते रहते हैं और इसने मुझे एक और सुझाव की याद दिला दी

डबल कोट्स PHP में स्ट्रिंग इंटरपोलेशन हैं, इसलिए यदि आप डबल कोट्स स्ट्रिंग में वेरिएबल्स का उपयोग करने जा रहे हैं, तो कॉन्सैट ऑपरेटर का उपयोग करना व्यर्थ है। दूसरी तरफ, सिंगल कोट्स स्ट्रिंग इंटरपोलेशन नहीं हैं, इसलिए यदि आपको स्ट्रिंग के अंत में केवल एक वेरिएबल की तरह मिल गया है तो यह समझ में आ सकता है, या केवल पूरे स्ट्रिंग के लिए इसका इस्तेमाल कर सकता है।

वास्तव में, यहां एक माइक्रो सेशन उपलब्ध है क्योंकि दुभाषिया चर के लिए स्ट्रिंग को पार्स करने की परवाह नहीं करता है। बढ़ावा लगभग ध्यान देने योग्य नहीं है और छोटे पैमाने पर पूरी तरह से अनदेखा किया जा सकता है। हालांकि, एक बहुत बड़े अनुप्रयोग में, विशेष रूप से अच्छे पुराने पुराने मोनोलिथ, यदि स्ट्रिंग्स का इस तरह उपयोग किया जाता है, तो प्रदर्शन में उल्लेखनीय वृद्धि हो सकती है। (और आईएमओ, वैसे भी पढ़ना आसान है)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL क्वेरी परिणाम को पांडा डेटा संरचना में कैसे परिवर्तित करें?

  2. cPanel में MySQL डेटाबेस कैसे बनाएं

  3. URL छोटा करने वाली साइट

  4. कोडनिर्देशक सक्रिय रिकॉर्ड में क्वेरी डालने के बाद अंतिम सम्मिलित आईडी कैसे प्राप्त करें?

  5. MySQL में तिथि के अनुसार ऑर्डर कैसे करें