/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
PHP, Stored Procedures og MySQL
Fra : Henrik Pedersen


Dato : 14-04-08 20:01

Hejsan

Nogle af jer der ligger inde med guldtippet ?
Jeg har efterhånden brugt adskillige timer på koden og på google, uden den
store succes.
Jeg har en relativt kompliceret SELECT der skal bruge tre parametre, som jeg
af flere gode grunde har valgt at omskrive til en SP.
Den er testet og verificeret i mysql klienten og returnere et flot dataset.

Jeg har de sidste par timer fumlet rundt med mysqli, prepare og param uden
den store success, så min bøn er om der skulle være nogle af jer der ligger
inde med guldtippet.

Med venlig hilsen
Henrik

 
 
Michael Rasmussen (14-04-2008)
Kommentar
Fra : Michael Rasmussen


Dato : 14-04-08 21:05



Henrik Pedersen (15-04-2008)
Kommentar
Fra : Henrik Pedersen


Dato : 15-04-08 20:10

Michael Rasmussen wrote:

> On Mon, 14 Apr 2008 21:01:24 +0200
> Henrik Pedersen <henrik.kirneh@gmail.com> wrote:
>
>>
>> Jeg har de sidste par timer fumlet rundt med mysqli, prepare og param
>> uden den store success, så min bøn er om der skulle være nogle af jer
>> der ligger inde med guldtippet.
>>
> Du kunne jo starte med at poste, hvad du har lavet indtil videre.
>

Følgende er bla. prøvet.
Den SP der kaldes returnere et resultset bestående af op 10 records, 12
felter.

if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
} else {echo "Forbindelse !<br>\n";}


$date = '2008-02-02';
$order = 'FirstName';
$sort = 'asc';

#$stmt = $conn->init();
if ($stmt = $conn->prepare("call vsp_SHIFTLIST(?, ?, ?)")) {
$stmt->bind_param("dss", $date, $order, $sort);
$stmt->execute();
$stmt->bind_result($result);
while ($stmt->fetch()){
echo "Value: ".$result[0];
}

$stmt->close();

}
$conn->close();

Når den kaldes i php resultere det i følgende:
Warning: mysqli_stmt::bind_result() [function.mysqli-stmt-bind-result]:
Number of bind variables doesn't match number of fields in prepared
statement. in /home/henrik/Projekter/web/sp-test/index.php on line 26

Henrik

Michael Rasmussen (15-04-2008)
Kommentar
Fra : Michael Rasmussen


Dato : 15-04-08 22:12



Henrik Pedersen (15-04-2008)
Kommentar
Fra : Henrik Pedersen


Dato : 15-04-08 22:41

Michael Rasmussen wrote:

> On Tue, 15 Apr 2008 21:10:29 +0200
> Henrik Pedersen <henrik.kirneh@gmail.com> wrote:
>
>> Når den kaldes i php resultere det i følgende:
>> Warning: mysqli_stmt::bind_result()
>> [function.mysqli-stmt-bind-result]: Number of bind variables doesn't
>> match number of fields in prepared statement.
>> in /home/henrik/Projekter/web/sp-test/index.php on line 26
> Hvis du logger ind via mysql, og kalder din SP fra mysql
> kommandolinjen, hvor mange tuple bliver der så returneret? Er svaret
> mere end 1, har du dit svar. bind_result skal have et antal variable
> svarende til antallet af tupler i response tabellen. Den kan ikke binde
> til en pseudo array variable, da bindingen foregår 1->1.
>

Øv !
Antallet af felter i hver tuble er konstant.
Antallet af tubles variere i forhold til parametrene.
Er der nogle måder at omgå det på.
Jeg fandt nogle artikler via google der antydede at det kunne lade sig gøre,
men desværre ikke noget konkret.
Da det er dataset/tubles jeg vil have retur ville det være optimalt hvis
views kunne tage parametre, men den luksus er desværre ikke til stede.

Nogle forslag ?

Henrik

Michael Rasmussen (16-04-2008)
Kommentar
Fra : Michael Rasmussen


Dato : 16-04-08 00:52



Søg
Reklame
Statistik
Spørgsmål : 177580
Tips : 31968
Nyheder : 719565
Indlæg : 6409083
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste