17. maj 2006 - 16:16
Der er
6 kommentarer og 1 løsning
InterBase: invalid BLOB ID
Hej, Jeg får følgende fejl: "Warning: ibase_execute() [function.ibase-execute]: invalid BLOB ID in ...." Min kode ser således ud: $ver_update = "update RDB\$PROCEDURES set RDB\$DESCRIPTION = ? where RDB\$PROCEDURE_NAME = 'MYPROCEDURE';"; $blob_id = ibase_blob_create(); ibase_blob_add($blob_id, "blobs"); ibase_blob_add($blob_id, "more blobs"); ibase_blob_add($blob_id, "and even more blobs"); $blob_id_str = ibase_blob_close($blob_id); $ver_trans = ibase_trans(IBASE_DEFAULT, $dbh); $ver_sth = ibase_prepare($dbh, $ver_trans, $ver_update); $ver_res = ibase_execute($ver_sth, $blob_id_str); if (!$ver_res) { echo $name.": update error\n"; ibase_rollback($ver_trans); ibase_free_query($ver_sth); unset($ver_res); } else { echo $name.": update success...\n"; ibase_commit($ver_trans); ibase_free_query($ver_sth); unset($ver_res); } Er der nogen der kan se hvor fejlen er?
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
Du er nok lige nødt til at teste returværdien fra ibase_blob_close - hvis den er false, er der sket en fejl i oprettelsen af blob'en: $blob_id = ibase_blob_create(); ibase_blob_add($blob_id, "blobs"); ibase_blob_add($blob_id, "more blobs"); ibase_blob_add($blob_id, "and even more blobs"); $blob_id_str = ibase_blob_close($blob_id); if ($blob_id_str === false) { die("uark, blob error: ".ibase_errmsg()); } Så får du muligvis en bedre fejlmeddelelse herfra. -- Morten Barklund
Det har jeg lige prøvet - der kommer ingen fejl - desværre.
Hvad giver en ibase_errmsg()/ibase_errcode() efter execute? Og hvad giver en var_dump($blob_id_str)?
Det giver følgende: ibase_errmsg() invalid BLOB ID ibase_errcode() -901 var_dump(..) string(18) "0x0f91d5c400000000"
Måske blob'en skal parses til et tal inden du indsætter. Prøv med noget intval inden du smider den til ibase_execute. Ellers har jeg intet bud.
Jeg har lige prøvet følgende: $fd = fopen("sp.txt", "r"); $blob = ibase_blob_import($dbh, $fd); fclose($fd); og så benytte $blob i min ibase_execute() sådan her: $ver_res = ibase_execute($ver_sth, $blob); Giver stadig samme resultat (invalid BLOB ID) Jeg benytter PHP Version 5.1.1
Lukker - fandt ikke en løsning.
Vi tilbyder markedets bedste kurser inden for webudvikling