/ 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
mysqli, nested queries ikke tilladt?
Fra : Leif Neland


Dato : 14-05-10 17:22

Kan man ikke have to mysqli-statements "igang" på een gang?
Jeg gør følgende: laver et query mod MS-Sql.

Laver to prepared MySql-statements, og bind'er parametre og resultater.
$stmt1->prepare("select count(*) from tab where id=?"); // Findes record i
mysql?
$stmt1->bind_param("i",$id);
$stmt1->bind_result($antal);

$stmt2->prepare("insert ...."); // Indsæt data

For hver ($mssql_resultat->data as $row) {
list($id,$data1,$data2)=$row; // data1,2 osv er bind_param'et til stmt2

$stmt1->execute();
$stmt1->fetch_result();
// $stmt1->close(); // Denne er nødvendig for at nedenstående insert giver
noget resultat men så kan man ikke loope
if ($antal==0) { // vis record ikke findes, indsæt den
$stmt2->execute(); // Insert records
}
}

Det er som om man ikke kan have begge stmt's åbne på een gang?
Skal man virkelig prepare/bind hver sætning for hver gang jeg løber igennem
løkken?




 
 
Jonathan Stein (15-05-2010)
Kommentar
Fra : Jonathan Stein


Dato : 15-05-10 14:30

Leif Neland skrev:

> Laver to prepared MySql-statements, og bind'er parametre og resultater.

Hvordan initialiserer du $stmt1 og $stmt2?

- Hvis det er ud fra samme mysqli-connection, så prøv at lave to
connections.

M.v.h.

Jonathan

--
Er din email vigtig? Er du træt af, at din hjemmeside er nede?
Stabilt webhotel på redundant setup med daglig backup.
POP3, IMAP, PHP, JSP, Java, Perl, Python, Telnet, SSH, Cron-jobs m.v.
http://www.jsp-hotel.dk/

Hekatombe (16-05-2010)
Kommentar
Fra : Hekatombe


Dato : 16-05-10 10:15

On 14-05-2010 18:21, Leif Neland wrote:
> Det er som om man ikke kan have begge stmt's åbne på een gang? Skal
> man virkelig prepare/bind hver sætning for hver gang jeg løber
> igennem løkken?

Hvis jeg husker korrekt, så skal du køre "$stmt->store_result()" inden
du executer den næste prepared statement.

Hvis det ikke hjælper, hvad kommer den med af fejlmeddelser?


Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste