fout in query? wie ziet het?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Femke

femke

16/08/2006 19:45:00
Quote Anchor link
Hoi, ik ben al een paar uren verschillende notaties aan het toepassen, zonder resultaat. Wellicht dat een van jullie de fout ziet in de volgende query:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<? $sql = 'UPDATE almelo_producten SET naam = "'.mysql_real_escape_string($_POST['naam']).'", basis = "'.mysql_real_escape_string($_POST['basisproduct']).'", omschrijving = "'.mysql_real_escape_string($_POST['omschrijving']).'", \'' . $pdf. '\',\''. mysql_real_escape_string($_FILES['myfile']['name']).'\'WHERE id = ".$_POST[id]';

?>


ik krijg geen foutmelding, hij stuurt de gegevens alleen niet naar de DB...
 
PHP hulp

PHP hulp

16/11/2024 15:39:18
 
Jan Koehoorn

Jan Koehoorn

16/08/2006 19:47:00
Quote Anchor link
Je begint je query met een enkele quote, maar je escapet de vars alsof je met een dubbele begint.
 
Frank -

Frank -

16/08/2006 19:54:00
Quote Anchor link
Wat Jan ook al zei, je gaat de mist in met de quotes. Verder ontbreken er een aantal velden, dat blijkt vanzelf wanneer je de query netjes gaat uitschrijven:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?
$sql
= "
UPDATE
  almelo_producten
SET
  naam             = '"
.mysql_real_escape_string($_POST['naam'])."',
  basis         = '"
.mysql_real_escape_string($_POST['basisproduct'])."',
  omschrijving     = '"
.mysql_real_escape_string($_POST['omschrijving'])."',
  '"
. $pdf. ",
  '"
. mysql_real_escape_string($_FILES['myfile']['name'])."'
WHERE
  id = "
.$_POST['id'];
?>

Edit: $pdf en $_FILES worden nergens weggeschreven. En dat je geen foutmelding krijgt, komt waarschijnlijk omdat je geen fouten wilt zien. Gebruik je wel error_reporting(E_ALL) en de functie mysql_error() ?
Gewijzigd op 01/01/1970 01:00:00 door Frank -
 
Femke

femke

16/08/2006 20:03:00
Quote Anchor link
nee die gebruik ik niet :schaam:..
bedoel je PDF met velden die missen?
 
Frank -

Frank -

16/08/2006 20:09:00
Quote Anchor link
Klopt: SET $pdf, $_FILES (wanneer ik de overige velden en functies even weglaat. Wie, wat en waar zouden deze gegevens moeten worden weggeschreven? Bij 'naam', 'basis' en 'omschrijving' benoem je keurig de veldnamen, maar bij de andere 2 gegevens ontbreken deze. MySQL is geen perfecte database, mocht dit al bestaan, maar gelukkig gaat MySQL niet zelf bedenken waar het de gegevens dan gaat wegschrijven. Dat mag jij nog steeds gaan bedenken!
 
Femke

femke

16/08/2006 20:32:00
Quote Anchor link
hehe fijn is dat ;) ik zal het nog eens naast elkaar zetten. Rare is dat ik een soortgelijke query gebruik bij het INSERTEN en die gaat wel goed:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
<?$sql = 'INSERT INTO almelo_producten (naam ,omschrijving ,categorie_id ,basis, pdf, files) VALUES ("'.mysql_real_escape_string($_POST['product']).'","'.mysql_real_escape_string($_POST['omschrijving']).'",'.mysql_real_escape_string($_POST['onderwerp']).',"'.mysql_real_escape_string($_POST['basisproduct']).'", \'' . $pdf. '\',\''. mysql_real_escape_string($_FILES['myfile']['name']).'\')';
?>
 
Frank -

Frank -

16/08/2006 20:39:00
Quote Anchor link
Tip: Schrijf de boel eens netjes uit over meerdere regels, zie mijn voorbeeld.

Bij de INSERT gebruik je 'INSERT INTO almelo_producten (naam ,omschrijving ,categorie_id ,basis, pdf, files)' voordat je naar de VALUES gaat. Je benoemt dus keurig alle velden die moeten worden gevuld. Dat moet je in de UPDATE dus ook doen: SET veldnaam = value
 
Femke

femke

16/08/2006 20:40:00
Quote Anchor link
ok ik ga het proberen!
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.