<?php
// Strings DB
include ("NLconfig_db_update.php");
// connectie met de DB
$link = mysql_connect($dbhost, $dbuser, $dbpass) or die("<b>error</b>: failed to connect to database");
// Naam v/d DB
mysql_select_db($dbname);
$xml = simplexml_load_file('***.xml');
foreach($xml->product as $product){
//<name>
$xmlName = htmlentities(($product->name), ENT_QUOTES, 'UTF-8');
$fieldName = trim(html_entity_decode($xmlName));
//<productEvent>
$fieldEvent = $product->productEvent;
// MySQL
mysql_query ("UPDATE `".$mysql_table."` SET name = ".$fieldName." WHERE event = ".$fieldEvent." ")or die (mysql_error());;
}
echo "DATA UPDATED.";
mysql_close($link);
?>

Hij geeft deze fout!
-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 'XXX WHERE event = XXX' at line 1
Quotes in je query en waarom 2 keer de ; aan het einde van je myslq_query regel?



mysql_query ("UPDATE `".$mysql_table."` SET name = '".$fieldName."' WHERE event = '".$fieldEvent."' ")or die (mysql_error());


Daarbij controleer je helemaal niet (nooit) of iets is gelukt.. :)
[php]mysql_real_escape_string[/php] en natuurlijk een quote eromheen

UPDATE tabelnaam SET veldnaam = 'Waarde' WHERE veld = 'andere waarde';
UPDATE tabelnaam SET veldnaam = 'Waarde' WHERE veld = 'andere waarde';

Dat heb ik toch gebruikt?
zonder de xml te raadplegen doet ie het wel?

Gelieve Niet Bumpen:

Twee of meer keer achter elkaar in een topic posten heet bumpen. Bumpen is pas na 24 uur toegestaan en kan een reden zijn voor de admins en moderators om een topic te sluiten. Gebruik indien nodig de knop om je tekst aan te passen.

SanThe.
maat schreef op 30.06.2009 22:58
UPDATE tabelnaam SET veldnaam = 'Waarde' WHERE veld = 'andere waarde';

Dat heb ik toch gebruikt?

Niet in je eerste post.
Let op de kleine enkele quotes
@maat
In je PM las ik dat je je afvraagt wat je niet controleerd:

Regel 8 en Regel 16 zijn functies die wel eens een foutmelding terug kunnen geven. Jij gebruikt DIE bij je mysql_query functie, dat kan maar is niet netjes.

De functie geeft false terug wanneer het niet is gelukt, beter is daarom:

<?php
if(mysql_query('query')){
//query gelukt
}
else{
//query niet gelukt
}
?>

Zelfde geld eigenlijk voor simplexml_load_file(), deze functie kan ook mislukken. Je wilt een passende melding geven en je wilt ook weten wat er wel en niet lukt. Daarom moet je altijd controles inbouwen.

Reageren