2017-01-18 19 views
7

ODBC ve PHP kullanarak out parametresi değerlerini almaya çalışıyorum. İnternette aradım ama boşuna. PDO ve mysqli için çok fazla çözüm var ve ben sadece odbc için this bulduk. Ben parametre tarafından kayboldum ve operasyon dahil.Saklanan Yordam Verilerinin Alınması ODBC ve PHP Kullanılıyor

Veritabanına bağlantı kurabilirim ancak hata her zaman ortaya çıkıyor. Onları anlayamadım.

[Sybase] [ODBC sürücüsü] geçersiz dize veya tampon uzunluğu

herhangi bir öneri?

<?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); 
?> 

cevap

1

Sonunda çözümü buldum.

Bu soruya ilişkin verileri almak için geldiğimde saklı yordam hakkında birçok yanlış anlama sahibim. En basit olanı bile.

Çağrılan parametrelerin verilerini almak yerine, aranan parametre diğer sonuç parametrelerini çağırmak için kullanılır. Örneğin burada UserId ve UserPwd, UserName ve LoginStatus'u görüntülemek için çağrılır.

Bu sonuç parametresi UserName ve LoginStatus ve UserId ve UserPwd değişken bir parametreye dayalı bir veri almak için doğru kodudur.

<?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

Şimdi sadece tahmin üzereyim, ama gerçek sorguda $UserId ve $UserPwd sütun olması gerekiyordu eğer onlardan $ işaretini kaldırmayı deneyin. Daha sonra kodda bunları $ -sign ile sütun isimleri olarak almaya çalışıyorsunuz, bu yüzden hataya neden olan şey olup olmadığından emin değilim. $UserId=odbc_result($rs,"UserId");'a kadar PHP değişkenleri değiller.

+0

Hey, düşünüyordum. Belki cevabını yanlış anladım. Biraz daha fazla açıklayabilir misin? @ user2620460 –

İlgili konular