Archief - PHP: record toevoegen aan mysql db via php code?

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Calvin

Legacy Member
Hoi,
Ik probeer een record toe te voegen via php code aan een mysql db.
Als ik de query in mysql zelf uitvoer, dan werkt het maar...

In de code van php gebruik ik mysql_query($dbquery, $dblink) en dat blijkt niet te lukken. De database openen lukt wel, maar een insert statement lukt niet.

Ik krijg geen error of warning en de rest van de code loopt vlotjes maar hij weigert om de $dbquery uit te voeren. Als ik in de database ga zien, is er niets toegevoegd.

*******************************************************
if ($cardRec !== $prevCardRec) {
$playDeck->addCardToDeck($cardRec);
// add the cardRec to the database
$dbquery = "insert into card (name, cardset, color, castingcost, type, class, power, toughness, cardtext, flavortext, artist, rarity, picture) values ($cardRec[cName], $cardRec[cSet], $cardRec[cColor], $cardCost, $cardRec[cType], $cardRec[cClass], $cardRec[cPower], $cardRec[cTough], $cardRec[cText], $cardRec[cFlavor], $cardRec[cArtist], $cardRec[cRarity], $cardRec[cID])";
//echo "<br />" . $dbquery . "<br />";
mysql_query($dbquery, $dblink);
$dbcount++;
}
$prevCardRec = $cardRec;
}

**************************************************

Is het misschien verboden om variablen op te geven in de query?

Mits enige aanpassing aan de code krijg ik de volgende error:
opening file ...
filling a deck with the cards from unlimited edition ...

connected succesfully to db ...

insert into card (name, cardset, color, castingcost, type, class, power, toughness, cardtext, flavortext, artist, rarity, picture) values (Air Elemental, unlimited, U, 3UU, Summon, Elemental, 4, 4, Flying, These spirits of the air are winsome and wild and cannot be truly contained. Only marginally intelligent, they often substitute whimsy for strategy, delighting in mischief and mayhem., Richard Thomas, U, )
invalid query: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Elemental, unlimited, U, 3UU, Summon, Elemental, 4, 4, Flying, These spirits of ' at line 1

Kan het zijn dat ik rond elke variabel zoals $cardRec[cName] nogmaals "" moet aanbrengen? Dat zou wel vreemd zijn.

iemand een idee?

Dece

Legacy Member
Calvin zei:
Hoi,
PHP:
<?php

#*******************************************************
if ($cardRec !== $prevCardRec) {
        $playDeck->addCardToDeck($cardRec);
        // add the cardRec to the database
        $dbquery = "insert into card (name, cardset, color, castingcost, type, class, power, toughness, cardtext, flavortext, artist, rarity, picture) values ('$cardRec['cName']', '$cardRec['cSet']', '$cardRec['cColor']', '$cardCost', '$cardRec['cType']', '$cardRec['cClass']', '$cardRec['cPower']', '$cardRec['cTough']', '$cardRec['cText']', '$cardRec['cFlavor']', '$cardRec['cArtist']', '$cardRec['cRarity']', '$cardRec['cID']')";
        //echo "<br />" . $dbquery . "<br />";
        mysql_query($dbquery, $dblink);
        $dbcount++;
      }
      $prevCardRec = $cardRec;
    }
?>
u variabelen single-quoten alvoor ze in de db te steken

Calvin

Legacy Member
Gij zijt mijne redder. :bow: Hoe kon ik dat vergeten??? :doh:
Derstraks ook al een uur aan het zoeken geweest naar een fout en wat bleek: een ; vergeten natuurlijk... *shame*

killgore

Legacy Member
mysql_query($query) OR die(mysql_error()); kan ook al veel helpen ;)
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan