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