Kezdőoldal » Számítástechnika » Programozás » PHP/MySQL - Miért fut le...

PHP/MySQL - Miért fut le többször a mysqli_query?

Figyelt kérdés

A mysqli_query 1/2/4/6 alkalommal fut le.


A kód:

$c = 1;

$result = mysqli_query($con, "SELECT body FROM domains");

while($row = mysqli_fetch_assoc($result)) {

mysqli_query($con, "INSERT INTO whoisdb (id, domain) VALUES ('', '');

$c++;

}


A C értéke 1. Viszont az adatbázisba többször kerül be.

A kedvencem az, amikor lefut a PHP és még fél óráig kerülnek be új rekordok az adatbázisba.

Tudnátok segíteni? Próbálnám elkerülni a PDO-t.


2015. okt. 30. 20:08
1 2
 1/13 Koplárovics Béci ***** válasza:
A cikluson belüli mysqli_query sorban páratlan az "-ek száma, valamint nincs minden (-nek ) párja.
2015. okt. 30. 20:20
Hasznos számodra ez a válasz?
 2/13 A kérdező kommentje:
Azok egyszeri idézőjelek (') duplán. Tuti van párjuk mert az SQL működik (mármint jól feltölti az adatokat) csak duplán.
2015. okt. 30. 20:21
 3/13 A kérdező kommentje:
Meg persze több oszlopba töltök fel adatot, csak nem akartam hogy a példa túl hosszú legyen.
2015. okt. 30. 20:22
 4/13 anonim ***** válasza:

Ja, a sor végén tényleg azok, de az insert into előtt nem éppen.

G.

2015. okt. 30. 20:52
Hasznos számodra ez a válasz?
 5/13 A kérdező kommentje:
Csak a példában, ha az idézőjelek okoznák a problémát akkor más lenne a hibajelenség :(
2015. okt. 30. 20:58
 6/13 anonim ***** válasza:
De mutasd meg a működő kódot ha segítséget vársz. Így a C semmiképpen sem maradhat 1, és a query is hibát dobna. Nem fogunk tudni segíteni ha false infókat adsz.
2015. okt. 30. 21:09
Hasznos számodra ez a válasz?
 7/13 anonim ***** válasza:

Ez a kód nem jó, syntax error.


Ez mi?

mysqli_query($con, "INSERT INTO whoisdb (id, domain) VALUES ('', '');


Zárójel megnyitva, de nincs lezárva. String idézőjellel megnyitva, de nincs lezárva. Így lenne jó:

mysqli_query($con, "INSERT INTO whoisdb (id, domain) VALUES ('', '')");


Ha megy a kód, akkor nem pontosan másoltad be, hanem csak begépelted saját belátásod szerint, úgy meg elég nehéz megtalálni a hibát, ha nem is ezzel a kóddal van a hiba.


Egyébként annyiszor fut le a mysqli_query(), ahány sor van a domains táblában. Más okot nem látok, ami miatt ez többször futna le. Nem azért van, mert mysqli-t használsz, a PDO ezen biztos nem segít.


Egyébként az alatt mit értesz, hogy "A C értéke 1"?

2015. okt. 30. 21:16
Hasznos számodra ez a válasz?
 8/13 A kérdező kommentje:

A teljes kód:

$c = 1;

$result = mysqli_query($con, "SELECT body FROM domains WHERE statusCom=1 LIMIT 1000000");

while($row = mysqli_fetch_assoc($result)) {

$helper = "com";

mysqli_query($con, "INSERT INTO whoisdb (id, domain, registered, ip, geo, locked, whois) VALUES ('".genString(8)."', '".$row["body"].".".$helper."', '".date('Y-m-d|H:i:s', time())."', '".gethostbyname($row["body"].".".$helper)."', '".ip_info(gethostbyname($row["body"].".".$helper), "Address")."', '0', '".getWhois($row["body"].".".$helper)."')");

$c++;

}

2015. okt. 30. 22:18
 9/13 A kérdező kommentje:
Az C értéke mindig annyi mint a LIMIT. Vagyis annyiszor fut a while (/addig) amennyire beállítom. De a táblába tölti fel többször az adatot.
2015. okt. 30. 22:19
 10/13 A kérdező kommentje:
És ha 1 a LIMIT, akkor a C értéke 2. Vagyis a mysqli_query függvényt egyszer hívom meg, de az adat négyszer kerül a táblába.
2015. okt. 30. 22:21
1 2

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!