Zo makkelijk is het niet. Er zal dan de string 'NULL' in je database komen in plaats van NULL. Je zou bijvoorbeeld iets kunnen doen als then $input='NULL' else $input = "'" . $db->escape($input) . "'". Maar nogmaals: waarom moeilijk doen als je het niet nodig hebt, je geen idee hebt wat je doet, en je jezelf alleen ellende op de hals haalt?quote:Op vrijdag 5 september 2008 17:29 schreef CraZaay het volgende:
[..]
Dan maak je er in slakkies code $input = 'NULL' van. Het is dan string waarde 'NULL', maar wanneer je deze unescaped in je query zet is het gewoon "bla = NULL" in de query. Heel die query is namelijk al een samenstelling van strings.
Nee, dat is niet correctquote:Op vrijdag 5 september 2008 17:32 schreef GlowMouse het volgende:
Zo makkelijk is het niet. Er zal dan de string 'NULL' in je database komen in plaats van NULL.
1 2 3 4 5 | $input = 'NULL'; mysql_query("INSERT INTO table (input) VALUES ($input);"); ?> |
1 |
Dit is een versimpelde versie uiteraard, ik ga er vanuit dat je ook geen zin hebt in injection enzo en al iets met die string gedaan hebt, bijvoorbeeld ge-escaped wanneer je er wel een string in wilt hebbenquote:Op vrijdag 5 september 2008 17:47 schreef GlowMouse het volgende:
Maar je hebt nooit VALUES($input) staan, omdat je dan in de problemen komt als $input een echte string is. Vandaar mijn else
Met PDO werkt het wel:quote:Op vrijdag 5 september 2008 17:25 schreef GlowMouse het volgende:
[..]
Dat wordt het niet, het blijft gewoon leeg terwijl je NULL moet hebben in je query.
Maar ik zou me de problemen met NULL in je db niet op de hals halen als je het niet nodig hebt. Sla gewoon een lege string op.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | $db = ""; $host = "localhost"; $dbname = "test"; $user = "root"; $passwd = ""; try { $db = new PDO(sprintf("mysql:host=%s;dbname=%s", $host, $dbname), $user, $passwd); } catch (PDOException $e) { printf("DB error: %s\n", $e->getMessage()); exit(1); } $sth = $db->prepare("INSERT INTO testing (val) VALUES ( ? )"); $sth->bindValue(1, null); $sth->execute(); ?> |
1 2 3 4 5 6 7 8 | -> ; +----+------+ | id | val | +----+------+ | 2 | NULL | +----+------+ 1 row in set (0.00 sec) |
Moet ${dag} zijn, ipv {$dag}, of ook niet, mag beide.. mkay.quote:Op zaterdag 6 september 2008 00:45 schreef CraZaay het volgende:
Of "$jaar-$maand-$dag 00:00:00", als je minder wilt concatenaten(mocht dat problemen geven, zet dan {} rond je vars, dus {$dag}).
Ga slapenquote:Op zaterdag 6 september 2008 01:04 schreef slakkie het volgende:
Moet ${dag} zijn, ipv {$dag}, of ook niet, mag beide.. mkay.
Thnx! Dit vind ik zelf ook wel de meest handige schrijfwijzequote:Op zaterdag 6 september 2008 00:45 schreef CraZaay het volgende:
Of "$jaar-$maand-$dag 00:00:00", als je minder wilt concatenaten(mocht dat problemen geven, zet dan {} rond je vars, dus {$dag}).
1 global tabelquote:Op maandag 8 september 2008 15:52 schreef Chandler het volgende:
Klopt maar wat raad je aan, zit namelijk zelf te denken aan 1 global tabel voor alle plugins ipv per plugin een tabel.
1 2 3 4 5 6 7 | echo "<select name='print' style='width: 387px'> <option>-</option> <option if(isset($print) && ($print==1)){echo selected='selected';} value='1'>Ja</option> <option if(isset($print) && ($print==0)){echo selected='selected';} value='0'>Nee</option> </select>;" ?> |
Niet gaan klooien, zorgt alleen maar voor meer problemen. Vraag ze de tijd gewoon goed in te stellen. Of krijg je gewoon de GMT tijd terug? Daar kun je wel mee rekenen uiteraard, als je die altijd krijgt.quote:Op maandag 8 september 2008 20:17 schreef poepeneesje het volgende:
Daarnaast heb ik nog het volgende, de tijd op MySQL-server van PCextreme loopt twee uur achter. Hoe zorg ik ervoor dat ik de juiste tijd opsla in de database, ik gebruik nu now() om de huidige (datebase)tijd op te slaan. Optellen van twee uur bij de tijd geeft waarschijnlijk problemen bij het voor- en achteruit zetten van de tijd.
Dit zou ik doen (met code-tag, syntax highlighter hier kan het niet aan anders):quote:Met een variable lukt het me wel, maar ik zou graag dus een stuk PHP hebben die xHTML print waarin weer een stuk PHP voorkomt, hoe krijg ik dit (netjes) voor elkaar?
1 2 3 4 5 6 7 8 9 | echo(" <select name='print' style='width: 387px'> <option>-</option> <option <?= (isset($print) && ($print == 1)) ? 'selected=\'selected\'' : '' ?> value='1'>Ja</option> <option <?= (isset($print) && ($print == 0)) ? 'selected=\'selected\'' : '' ?> value='0'>Nee</option> </select> "); ?> |
De tijd zal ingesteld staan op GMT en blijbaar staat de server ook in de UK, dus moet je die omrekenen naar CET, zie http://dev.mysql.com/doc/(...)#function_convert-tzquote:Op maandag 8 september 2008 20:17 schreef poepeneesje het volgende:
Daarnaast heb ik nog het volgende, de tijd op MySQL-server van PCextreme loopt twee uur achter. Hoe zorg ik ervoor dat ik de juiste tijd opsla in de database, ik gebruik nu now() om de huidige (datebase)tijd op te slaan. Optellen van twee uur bij de tijd geeft waarschijnlijk problemen bij het voor- en achteruit zetten van de tijd.
Als je na gaat denken over PHP die PHP moet genereren zit je op het verkeerde pad. Dat is niet wat je wil, punt.quote:En is het daarnaast mogelijk om het volgende op een goede manier voor elkaar te krijgen?
[ code verwijderd ]
Met een variable lukt het me wel, maar ik zou graag dus een stuk PHP hebben die xHTML print waarin weer een stuk PHP voorkomt, hoe krijg ik dit (netjes) voor elkaar?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | function SelectBoxHTML($name, $options, $selected) { $html = "<select name=\"$name\" style=\"width: 387px\" onchange=\"this.form.submit();\">\n"; foreach ($options as $value => $text) { $html .= "<option"; if ($value == $selected) { $html .= " selected=\"selected\""; } $html .= " value=\"$value\">$text</option>\n"; } $html .= "</select>\n"; return $html; } print "<html><body><form>"; print "<p>Printen? " . SelectBoxHTML('print', array("1" => "Ja", "0" => "Nee", "2" => "Misschien"), $_GET['print']) . "</p>"; print "<p>Favoriete kleur? " . SelectBoxHTML('fav_kleur', array("rood" => "rood", "geel" => "geel", "pimpelpaars" => "pimpelpaars", "zwart" => "zwart"), $_GET['fav_kleur']) . "</p>"; print "</form></body></html>"; ?> |
Dat wil 'ie ook niet getuige z'n voorbeeldquote:Op maandag 8 september 2008 21:31 schreef Farenji het volgende:
Als je na gaat denken over PHP die PHP moet genereren zit je op het verkeerde pad. Dat is niet wat je wil, punt.
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |