2017-01-18 7 views
7

का उपयोग करके संग्रहीत प्रक्रिया के डेटा को पुनर्प्राप्त करना मैं ओडीबीसी और PHP का उपयोग करके आउट पैरामीटर के मानों को पुनर्प्राप्त करने का प्रयास कर रहा हूं। मैं ऑनलाइन खोज रहा हूं लेकिन इसका कोई फायदा नहीं हुआ। पीडीओ और माइस्क्ली के लिए बहुत सारे संकल्प हैं और मुझे केवल ओडीबीसी के लिए this मिला। मैं पैरामीटर से खो गया हूं और ऑपरेशन में शामिल है।ओडीबीसी और PHP

मैं डेटाबेस से कनेक्शन बनाने में सक्षम हूं लेकिन त्रुटि हमेशा पॉप अप हो जाती है। मैं उन्हें समझ नहीं पाया।

[Sybase] [ODBC ड्राइवर] अमान्य स्ट्रिंग या बफर लंबाई

कोई भी सुझाव?

<?php 

$conn=odbc_connect("dsn", " ", " "); 

if (!$conn) 
{ 
exit("Connection Failed: " . $conn); 
} 

$sql=odbc_prepare("CALL ndTblUser (@varUserId,@varUserPwd)"); 
$stmt=odbc_execute($sql, "SELECT @varUserId as UserId, @varUserPwd as UserPwd"); 

$rs=odbc_exec($conn,$stmt); 

if (!$rs) 
{ 
exit("Error : " . odbc_errormsg()); 
} 
echo "<table><tr>"; 
echo "<th>Id</th>"; 
echo "<th>Password</th></tr>"; 

while (odbc_fetch_row($rs)) 
{ 
$UserId=odbc_result_all($rs,"UserId"); 
$UserPwd=odbc_result_all($rs,"UserPwd"); 
echo "<tr><td>$UserId</td>"; 
echo "<td>$UserPwd</td></tr>"; 
} 

odbc_close($conn); 
?> 

उत्तर

1

मुझे अंत में समाधान मिला है।

इस प्रश्न के लिए डेटा पुनर्प्राप्त करने के लिए मुझे संग्रहीत प्रक्रिया की बहुत सारी गलतफहमी मिली है। यहां तक ​​कि सबसे सरल भी।

कॉल किए गए पैरामीटर के डेटा को पुनर्प्राप्त करने के बजाय, कॉल किए गए पैरामीटर का उपयोग अन्य परिणाम पैरामीटर को कॉल करने के लिए किया जाता है। उदाहरण के लिए, UserId और UserPwd को UserName और LoginStatus प्रदर्शित करने के लिए कहा जाता है।

इस परिणाम पैरामीटर UserName और LoginStatus और UserId और UserPwd की एक चर पैरामीटर के आधार पर की डेटा पुन: प्राप्त करने के लिए सही कोड है।

<?php 

$conn=odbc_connect("dsn", " ", " "); 

if (!$conn) 
{ 
    exit("Connection Failed : " . $conn); 
} 

$stmt=odbc_exec($conn,"CALL ndTblUser (".$_POST['UserId'].",'".$_POST['UserPwd']."')"); 

if (!$stmt) 
{ 
    "Error : " . odbc_errormsg(); 
} 

if (odbc_fetch_row($stmt)) 
{ 
    $UserName=odbc_result($stmt,"UserName"); 
    $LoginStatus=odbc_result($stmt,"LoginStatus"); 
} 


if($LoginStatus==1) 
{ 
    echo odbc_result($stmt,"UserName"); 
    echo odbc_result($stmt,"LoginStatus"); 
} 
1

अब मैं सिर्फ अनुमान लगा के बारे में हूँ, लेकिन अगर $UserId और $UserPwd वास्तविक क्वेरी में स्तंभों माना जाता है, उनमें से $ -sign दूर करने के लिए प्रयास करें। बाद में कोड में आप उन्हें $ -ign के साथ कॉलम नाम के रूप में प्राप्त करने का प्रयास कर रहे हैं, इसलिए मुझे यकीन नहीं है कि क्या त्रुटि है। वे $UserId=odbc_result($rs,"UserId"); तक PHP चर नहीं हैं।

+0

हे, मैं सोच रहा था। शायद मैंने आपके जवाब को गलत समझा। क्या आप और अधिक व्याख्या कर सकते हैं? @ user2620460 –

संबंधित मुद्दे