मैं सोच रहा हूँ के लिए ...PHP पीडीओ :: बिंदपाराम() डेटा प्रकार .. यह कैसे काम करता है?
मेरा मतलब है कि bindParam()
(या bindValue()
) में डेटा प्रकार की घोषणा प्रयोग किया जाता है, मैंने सोचा कि अगर मैं एक पूर्णांक तर्क (PDO::PARAM_INT
) को परिभाषित, तर्क परिवर्तित किया जाना चाहिए एक पूर्णांक के लिए,
$delete->bindParam(1, $kill, PDO::PARAM_INT);
// should work like
$delete->bindParam(1, (int)$kill);
या कम से कम एक त्रुटि फेंक दें यदि तर्क घोषित प्रकार का नहीं है। पर ये स्थिति नहीं है।
चारों ओर Googling, मैंने पाया कि php.net संग्रह में:
हाय सब,
मैं वर्तमान में पीडीओ पर काम कर रहा हूँ। BindParam() फ़ंक्शन पर बिल्कुल । मान के प्रकार को मजबूर करने के लिए तीसरा पैरामीटर डेटा_टाइप प्रतीत होता है? लेकिन जब मैं कोशिश:
$sql = "INSERT INTO produit (idproduit, nom, marque) VALUES (NULL, :nom, :marque)"; $stmt = $dbh->prepare($sql); $nom = 'Testarossa'; $marque = 'Ferrari' ; $stmt->BindValue(':marque',$marque) ; $stmt->BindParam(':nom',$nom,PDO::PARAM_INT) ; $stmt->execute(); $nom = '250 GTO' ; $stmt->execute(); ?>
मैं या तो एक PHP त्रुटि या मेरी डेटाबेस में एक interger के लिए उम्मीद कर रहा था। लेकिन मेरी DB में मेरे पास है:
22 Testarossa फेरारी 250 GTO 23 फेरारी
इसका मतलब यह है कि अगर मैं तीसरे पैरामीटर है या नहीं है कि यह नहीं बदला। या शायद मुझे कुछ याद आती है। क्या कोई मुझे और अधिक टोल कर सकता है? या सिर्फ ने मुझे बताया कि मुझे इसके बारे में जानकारी मिल सकती है।
सादर,
Cyruss
वास्तव में मेरी स्थिति है। मेरे विचार गलत कहां जा रहे हैं?
"मुझे या तो मेरे डेटाबेस में एक PHP त्रुटि या एक इंटरगर होने की उम्मीद थी।" मैं भी – VolkerK