Ik snap niet helemaal wat de schrijver van die tekst bedoelt. In onderstaande voorbeeld bewijst hij juist toch dat je ze wel moet gebruiken?quote:Op maandag 14 februari 2011 15:43 schreef remi1986 het volgende:
[..]
Backticks gebruik ik nooit
http://www.pfz.nl/wiki/backticks/
Tenzij hij bedoelt dat je geen reserved words als kolomnamen moet gebruiken, maar dan nog maakt het niet uit als je backticks gebruikt.quote:Maar het kan nog veel erger. Gereserveerde woorden hebben in SQL een betekenis. Woorden zoals DELETE en DROP hebben zelfs een gevaarlijke betekenis.
SELECT
`delete`
FROM
tabel;
Dit selecteert de kolom 'delete' uit de tabel.
SELECT
delete
FROM
tabel;
Zonder backticks selecteert dit de uitkomst van de DELETE query die zojuist je tabel heeft geleegd.
1 2 3 4 | CREATE TABLE group ( 'group' INT NOT NULL , 'tekst' INT NOT NULL ) ENGINE = MYISAM |
1 2 3 4 | CREATE TABLE group1 ( 'group1' INT NOT NULL , 'group2' INT NOT NULL ) ENGINE = MYISAM |
1 | ALTER TABLE tabelnaam ADD ".$kolomnaam." VARCHAR( 3 ) DEFAULT 'o' NOT NULL |
Remy1986...als je zegt dat dit werkt..leg me het volgende dan eens uitquote:De reden waarom je $kolomnaam krijgt, is omdat je gewoon $kolom in de string hebt staan. Als je de waarde van een php variabele wil, doe je
[code]ALTER TABLE tabelnaam ADD ".$kolomnaam." VARCHAR( 3 ) DEFAULT 'o' NOT NULL " ; [/code]En wat ik zelf altijd doe, als extra veiligheid is PHP variablen escapen met mysql_real_escape_string().
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <?php ini_set('display_errors', 'On'); error_reporting(E_ALL); $con = mysql_connect("localhost","login",""); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("login", $con); $id = "zooi"; $commando="ALTER TABLE optredens_gebruikers ADD ".$id." VARCHAR( 3 ) DEFAULT 'o' NOT NULL " ; mysql_query($commando); mysql_close($con); ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | <?php ini_set('display_errors', 'On'); error_reporting(E_ALL); $con = mysql_connect("localhost","login",""); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("login", $con); $datum=$_POST['datum']; $dagdeel=$_POST['dagdeel']; $wat=$_POST['wat']; $waar=$_POST['waar']; $sql="INSERT INTO optredens(datum, dagdeel, wat, waar) VALUES ('$datum','$dagdeel','$wat','$waar')"; mysql_query($sql); // Formulier succes! echo '<p>Je hebt het optreden succesvol toegevoegd!</p>'.'<br />'; echo " Datum: $datum <br />"; echo " Dagdeel: $dagdeel<br />"; echo " Wat: $wat<br />"; echo " Waar: $waar<br />"; $bla = mysql_insert_id(); echo $bla; $id = $bla; $commando="ALTER TABLE optredens_gebruikers ADD ".$id." VARCHAR( 3 ) DEFAULT 'o' NOT NULL " ; mysql_query($commando); echo "1 record added"; mysql_close($con); ?> |
1 2 3 | <?php $query=mysql_query($commando) or die(mysql_error()); ?> |
is goed...de waarde komt van een auto_incrementquote:Weet je zeker dat $bla goed is? Wat geeft die voor waarde dan?
In de tabel van optredens, heb je daar een auto_increment field? Dan zou het goed moeten gaan....
Daar waar ik nooit numerieke waarden als kolomnaam zou gebruiken heeft GlowMouse gelijk. Je moet daarvoor wel backticks gebruiken.quote:Op dinsdag 15 februari 2011 10:59 schreef MrNiles het volgende:
[..]
is goed...de waarde komt van een auto_increment
bijv 121
testje zal ik later doen..vergadering..en ik ben al te laat..shit
quote:Op maandag 14 februari 2011 15:06 schreef KomtTijd... het volgende:
[..]
Een database is geen spreadsheet!
je kunt gewoon twee kolommen maken, <naam> | <datum_aanwezig>. Dat is toch genoeg?
Ik begreep die alter table ook al niet . De consistency van je hele database gaat eraan! . en duidelijkheid van gegevens is dan ver te zoeken.quote:Op dinsdag 15 februari 2011 11:34 schreef remi1986 het volgende:
Ik zou hier eens zon voorstel voor een databasestructuur moeten maken, waar ik op deze manier kolommen wil toevoegen. Denk dat ik dan op zoek kan naar ander werk
Daarom mijn tip aan jou schrijf het in jip en janneke taal op zodat je laat weten wat je wil. (pseudo code).quote:Op dinsdag 15 februari 2011 11:57 schreef MrNiles het volgende:
ik snap het wel...over het aanpassen van de database..en dat het geen spreadsheet is
en ik begrijp ook dat het op een andere manier moet..en dat ga ik ook doen
maar ik was gewoon nieuwsgierig waarom het ene wel lukt en het andere niet...de verklaring dat dat komt omdat het numeriek neem ik meteen voor waarheid aan...
case closed....
mail komt later deze middagquote:Daarom mijn tip aan jou schrijf het in jip en janneke taal op zodat je laat weten wat je wil. (pseudo code).
1 2 3 | <?php if (isset($_SERVER["HTTP_X_REQUESTED_WITH"]) && $_SERVER["HTTP_X_REQUESTED_WITH"] == "XMLHttpRequest") ?> |
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |