Database-class als in: PDO. Eigen databasewrappers schrijven is tegenwoordig ook nergens meer voor nodig, daar hebben we PDO voor. Jammer alleen dat het een hoop hosters onvoldoende drivers aanbieden.quote:Op dinsdag 26 april 2011 21:07 schreef GlowMouse het volgende:
Zolang je de extra features van MySQLi niet gebruikt, biedt MySQLi geen voordelen. Bovendien zie ik MySQL niet verdwijnen. Daarnaast moet je een database-class gebruiken, zodat mysql door mysqli vervangen nauwelijks tijd kost.
Ben ik in principe met je eens, maar er zijn uitzonderingsgevallen, zoals verschillen tussen de Linux en Windows-API's die errors veroorzaken, en andere randgevallen waarbij onderdrukking in plaats van rete-ingewikkelde foutafhandeling beter is. Maar inderdaad, bij in 99% van de gevallen is dat niet nodig. Samenvatting: onderdrukking voor tekortkomingen van PHP zelf is prima, maar voor fouten aan je eigen kant niet.quote:Op woensdag 27 april 2011 09:11 schreef mstx het volgende:
Ten zesde: onderdruk fouten niet met @ maar zorg dat je in eerste instantie geen fouten krijgt.
Indenten?quote:
quote:Op woensdag 27 april 2011 09:11 schreef mstx het volgende:
Ten zesde: onderdruk fouten niet met @ maar zorg dat je in eerste instantie geen fouten krijgt.
1 2 3 4 5 6 7 8 | <?php if (empty($_POST['Artikelnummer'])) { echo ''; } else { foreach($_POST['Artikelnummer'] as $Artikelnummer) { ?> |
1 2 3 | <?php $sql=("SELECT Artikelnummer, Naam, Prijs FROM producten WHERE Artikelnummer = '".mysql_real_escape_string($Artikelnummer)."'") ?> |
echo ''; is nogal nutteloos he.quote:Op woensdag 27 april 2011 10:22 schreef afro het volgende:
[..]
Indenten?
[..]
[ code verwijderd ]
Zo goed opgelost?
1 2 3 4 5 6 | <?php if (!empty($_POST['Artikelnummer'])) { foreach($_POST['Artikelnummer'] as $Artikelnummer){ } } ?> |
Dat is waar ,quote:Op woensdag 27 april 2011 10:28 schreef mstx het volgende:
[..]
echo ''; is nogal nutteloos he.
[ code verwijderd ]
Hoe wil je hem outputten? Alleen even bekijken? var_dump($aMultiDimensional);quote:Op donderdag 28 april 2011 11:33 schreef -Datdus- het volgende:
Weet iemand hoe je multiple dimensional array output?
outputten!quote:Op donderdag 28 april 2011 11:35 schreef PiRANiA het volgende:
[..]
Hoe wil je hem outputten? Alleen even bekijken? var_dump($aMultiDimensional);
Same.quote:Op vrijdag 29 april 2011 09:16 schreef remi1986 het volgende:
gebruik altijd print_r i.c.m. <pre> </pre>
var_dump geeft mij ook iets teveel informatie terug, wel handig als het om type casting gaat dat je precies weet waar je mee werkt. Maar als je in een MVC framework werkt bouw je je models zo dat er een stuk type casting in zit, zodat je er vanuit kunt gaan dat de objecten waarmee je werkt ook daadwerkelijk het type hebben wat je verwacht i.p.v. dat losse type casting waar PHP mee werkt.quote:Op vrijdag 29 april 2011 09:16 schreef remi1986 het volgende:
gebruik altijd print_r i.c.m. <pre> </pre>
Gelukkig zit type hinting voor scalar variables in de pijplijn voor een volgende PHP-versiequote:Op vrijdag 29 april 2011 10:48 schreef Pakspul het volgende:
[..]
var_dump geeft mij ook iets teveel informatie terug, wel handig als het om type casting gaat dat je precies weet waar je mee werkt. Maar als je in een MVC framework werkt bouw je je models zo dat er een stuk type casting in zit, zodat je er vanuit kunt gaan dat de objecten waarmee je werkt ook daadwerkelijk het type hebben wat je verwacht i.p.v. dat losse type casting waar PHP mee werkt.
Bron? Want ik ben echt zwaar benieuwd naar de uitwerking. Liefste zie ik zoiets als c# want dat verschil niet erg veel van PHP.quote:Op vrijdag 29 april 2011 11:11 schreef Intrepidity het volgende:
[..]
Gelukkig zit type hinting voor scalar variables in de pijplijn voor een volgende PHP-versie
Dat geeft vooral overhead, en zeker in een weakly typed taal als php heeft het andere nadelen. Zelfs in een taal als java zijn integers en floats etc gewoon primitives, die je eventueel wel in een Integer/Float etc class kan vatten. Maar dat riekt bij mij al snel naar overengineering. Niks mis met primitives. Misschien dat het voor strings handig kan zijn, bijv zoals het in javascript werkt bijvoorbeeld, waar een string een object en ook een pseudo array is. Voor de rest: keep it simple, stupid.quote:Op vrijdag 29 april 2011 11:13 schreef Pakspul het volgende:
Mooiste zal zijn als string,integer,float etc ook classes zijn of structures zodat deze ook in functies worden geaccepteerd.
Zie o.a. http://sebastian-bergmann(...)s-in-PHP-5.3.99.htmlquote:Op vrijdag 29 april 2011 11:13 schreef Pakspul het volgende:
[..]
Bron? Want ik ben echt zwaar benieuwd naar de uitwerking. Liefste zie ik zoiets als c# want dat verschil niet erg veel van PHP.
Mooiste zal zijn als string,integer,float etc ook classes zijn of structures zodat deze ook in functies worden geaccepteerd.
Een ubersimpele scriptingtaal is het al jaren niet meer. Loosely typed is het inderdaad, maar dat is een bewuste keuze geweest. Een volledige taal is het al een heel poosje. Wat voor dingen mis jij zoal in de API dan? Dat het niet geleverd wordt met een compleet framework zoals bijvoorbeeld ASP.net dat doet klopt, maar dat zie ik als een groot voordeel, omdat ik dan zelf een framework kan kiezen.quote:Op vrijdag 29 april 2011 11:53 schreef Farenji het volgende:
Je moet PHP ook niet proberen te veranderen in wat het niet is en wat nooit de bedoeling was. Het is oorspronkelijk gemaakt als een zeer laagdrempelige, ubersimpele scriptingtaal. Als je er echt een stricte en volledige programmeertaal van wil maken inclusief type checking etc dan kun je beter met een schone lei beginnen, zodat je ook alle nare erfenissen uit de voorbije tijd kunt kwijtraken. Maar ja, dan kom je waarschijnlijk uit op iets zoals Python...
Idd qua weergave is var_dump wel de betere.quote:Op zondag 1 mei 2011 21:53 schreef mafkees01 het volgende:
Gebruikte eerst ook altijd print_r, maar tegenwoordig altijd var_dump omdat ik veel gebruik maak van arrays Vind die weergave altijd enorm duidelijk
Ligt er dan ook wel enorm aan.. Als ik een dynamische SQL query bouw dan vind ik een var_dump erg onhanding omdat er quotes omheen staan, welke type casting en de length. Dan is de eventuele fout in je query moeilijk te vinden..quote:Op zondag 1 mei 2011 21:55 schreef themole het volgende:
[..]
Idd qua weergave is var_dump wel de betere.
Waarom zou ik ? Ik heb een eigen db-debugger in mijn db-class ingebouwd en kom met print_r verder gewoon waar ik wil komen.quote:Op maandag 2 mei 2011 09:31 schreef Intrepidity het volgende:
Gebruik toch in godsnaam gewoon xdebug Af en toe wat gepruts om het te installeren maar ik beloof je dat je 10x sneller debugged dan met var_dump en dergelijke.
En als je niet weet op welke code je programma crasht? Kun je ook fijn je methodes in stappen met print_r en dergelijke? Tuurlijk heb je het niet persee nodig, maar het scheelt een hele hoop tijd.quote:Op maandag 2 mei 2011 09:40 schreef GI het volgende:
[..]
Waarom zou ik ? Ik heb een eigen db-debugger in mijn db-class ingebouwd en kom met print_r verder gewoon waar ik wil komen.
wtf is xdebug? Ik heb mijn code zo gemaakt dat als er iets mis gaat dat ik een exception krijg en met de stacktrace kan ik dan zien waar het fout gaat. Persoonlijk vind ik debug programma's ook brak. Zend heeft er ook 1 maar kan daar echt niet mee overweg aangezien ik mijn variabelen best diep heb zitten en dan ben ik met een print_r velen malen sneller.quote:Op maandag 2 mei 2011 09:31 schreef Intrepidity het volgende:
Gebruik toch in godsnaam gewoon xdebug Af en toe wat gepruts om het te installeren maar ik beloof je dat je 10x sneller debugged dan met var_dump en dergelijke.
xdebug is een php-plugin die ook ondersteund wordt door de meeste IDE's waarbij je bij een exception of error meteen naar de betreffende regel springt in je IDE en waarna je alle variabelen en de loop van je programma kunt inspecteren. M.a.w. volledige debugging zoals je dat o.a. ook in visual studio .net hebt.quote:Op maandag 2 mei 2011 13:43 schreef Pakspul het volgende:
[..]
wtf is xdebug? Ik heb mijn code zo gemaakt dat als er iets mis gaat dat ik een exception krijg en met de stacktrace kan ik dan zien waar het fout gaat. Persoonlijk vind ik debug programma's ook brak. Zend heeft er ook 1 maar kan daar echt niet mee overweg aangezien ik mijn variabelen best diep heb zitten en dan ben ik met een print_r velen malen sneller.
Moet ik PHP dan bijvoorbeeld elke 24 uur de hele database checken en elk account met een datum van 30 dagen geleden laten verwijderen?quote:
Het is soms echt te makkelijk, thanksquote:Op donderdag 12 mei 2011 21:49 schreef GlowMouse het volgende:
Precies, om de zoveel tijd met PHP een delete-query draaien.
Als je in de database datetime velden gebruikt, zou je eens kunnen kijken naar de mysql-functie datediff()quote:Op donderdag 12 mei 2011 22:17 schreef dirkjo het volgende:
[..]
Het is soms echt te makkelijk, thanks
Ga even uitzoeken hoe ik een datum kan checken en er dagen vanaf halen
Het zijn inderdaad datetime fields, zal eens even kijken. Thanksquote:Op donderdag 12 mei 2011 22:54 schreef Light het volgende:
[..]
Als je in de database datetime velden gebruikt, zou je eens kunnen kijken naar de mysql-functie datediff()
Even snel lopen kijken naar de datedriff() functie, maar als ik er zo naar kijk dan zou het ook moeten kunnen wanneer je gewoon gebruik maakt van de algemene varchar velden?quote:Op donderdag 12 mei 2011 22:54 schreef Light het volgende:
[..]
Als je in de database datetime velden gebruikt, zou je eens kunnen kijken naar de mysql-functie datediff()
1 | SELECT `date_veld` FROM `tabel` WHERE DATEDIFF(`date_veld`, NOW()) < -30 |
Of van je voorganger waarmee je vanwege legacy-code maar moet zien te leven.quote:Op vrijdag 13 mei 2011 10:39 schreef GlowMouse het volgende:
Als je varchar voor een datum gebruikt dan is het je eigen schuld.
Doe ik niet, zijn gewoon datetime fieldsquote:Op vrijdag 13 mei 2011 10:39 schreef GlowMouse het volgende:
Als je varchar voor een datum gebruikt dan is het je eigen schuld.
Dankje! Ga er vanavond/dit weekend eens even mee klotenquote:Op vrijdag 13 mei 2011 09:40 schreef remi1986 het volgende:
Snel testje gedaan.
Als je dit doet
[ code verwijderd ]
Krijg je data die ouder zijn dan 30 dagen. Wel verwarrend met < -30.
Dit kan je natuurlijk gebruiken met een DELETE WHERE query.
1 2 3 4 5 | <?php $result = mysql_query("SELECT * FROM `ftpuser` WHERE DATEDIFF(`accessed`, NOW()) < -30"); $row = mysql_fetch_array($result); echo ($row['userid']); ?> |
1 | "gebruikersnaam" |
je echo't maar 1x, zie de voorbeelden op http://nl3.php.net/mysql_fetch_arrayquote:Op vrijdag 13 mei 2011 22:07 schreef dirkjo het volgende:
Wanneer ik dan bijvoorbeeld ga spelen met de waarde < -30 blijf ik constant dezelfde gebruikersnaam houden, terwijl ik zeer zeker weet dat er meerdere moeten verschijnen.
Een timestamp veld vul je niet met een unix timestamp, en je wilt waarschijnlijk datetime gebruiken, zie http://dev.mysql.com/doc/refman/5.0/en/datetime.htmlquote:Op vrijdag 13 mei 2011 22:09 schreef Chandler het volgende:
Kan iemand mij het volgende uitleggen, ik heb een tabel met 4 velden (expire_date [timestamp], user_id [int], action [varchar=50], value [text]) en wil deze tabel gebruiken om acties voor een bepaalde tijd in een database in te voeren. Echter werkt de volgende insert niet zoals verwacht
insert into `actions` (`expiredate`, `userID`, `action`, `value`)
VALUES (CUR_TIJD + $time,
$userID,
$action,
$value);
waar CUR_TIJD de huidige tijd (time()) + $time in seconden is. Wat doe ik fout?
En dat is beter voor indices.quote:en DATEDIFF(`accessed`, NOW()) < -30 lijkt me leuker om dit te hebben
`accessed` >= DATE_SUB(CURDATE(),INTERVAL 30 DAYS)
zo pak je alles wat binnen 30 dagen valt en wil je anders om dan doe je <
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <?php function() { $extime = (is_numeric($extime) && $extime > 0) ? time() + $extime : time() + 60; $query = $this->db->query("INSERT INTO `actions` (`expiredate`, `user_id`, `action`, `value`, `validate`) VALUES ('" . date("Y-m-d H:i:s", $extime) . "', '" . $this->db->escape($userID) . "', '" . $this->db->escape($action) . "', '" . $this->db->escape($value) . "', '" . $this->db->escape($validate) . "')"); } ?> |
Misschien erbij moeten vermelden dat ik 'printf' ook al heb geprobeerd.quote:Op vrijdag 13 mei 2011 22:25 schreef GlowMouse het volgende:
[..]
je echo't maar 1x, zie de voorbeelden op http://nl3.php.net/mysql_fetch_array
[..]
Een timestamp veld vul je niet met een unix timestamp, en je wilt waarschijnlijk datetime gebruiken, zie http://dev.mysql.com/doc/refman/5.0/en/datetime.html
[..]
En dat is beter voor indices.
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |