Unknown column 'gerhard1' in 'where clause'
Code (php)
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
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
$myFile = $_SESSION['productid'].".php";
$fh = fopen($myFile, 'w') or die("can't open file");
$stringData = '<?php
include_once "../../connect.php"; //verbinding maken
$ab = $_SESSION[\'aangemaakt\'];
$query = "SELECT * FROM products WHERE naam='.$_POST['naam'].'";
$sql = mysql_query($query) or die ( mysql_error( ) );
//query is uitgevoerd
while($record = mysql_fetch_object($sql)){
echo "<table border=2>";
echo "<tr><td>Code</td><td>".$record->id."</td></tr>";
echo "<tr><td>Naam</td><td>".$record->naam."</td></tr>";
echo "<tr><td>Omschrijving</td><td>".$record->omschrijving."</td></tr>";
echo "<tr><td>platform</td><td>".$record->platvorm."</td></tr>";
echo "<tr><td>genre</td><td>".$record->genre."</td></tr>";
echo "<tr><td>datum</td><td>".$record->date."</td></tr>";
echo "<tr><td>Prijs</td><td>".$record->prijs."</td></tr>";
echo \'<a href="../all/">alles bekijken</a><br>
<a href="../test/">toevoegen</a>\';
}
?>';
fwrite($fh, $stringData);
fclose($fh);
header('Location: '.$_SESSION['productid'].'.php');
}
$fh = fopen($myFile, 'w') or die("can't open file");
$stringData = '<?php
include_once "../../connect.php"; //verbinding maken
$ab = $_SESSION[\'aangemaakt\'];
$query = "SELECT * FROM products WHERE naam='.$_POST['naam'].'";
$sql = mysql_query($query) or die ( mysql_error( ) );
//query is uitgevoerd
while($record = mysql_fetch_object($sql)){
echo "<table border=2>";
echo "<tr><td>Code</td><td>".$record->id."</td></tr>";
echo "<tr><td>Naam</td><td>".$record->naam."</td></tr>";
echo "<tr><td>Omschrijving</td><td>".$record->omschrijving."</td></tr>";
echo "<tr><td>platform</td><td>".$record->platvorm."</td></tr>";
echo "<tr><td>genre</td><td>".$record->genre."</td></tr>";
echo "<tr><td>datum</td><td>".$record->date."</td></tr>";
echo "<tr><td>Prijs</td><td>".$record->prijs."</td></tr>";
echo \'<a href="../all/">alles bekijken</a><br>
<a href="../test/">toevoegen</a>\';
}
?>';
fwrite($fh, $stringData);
fclose($fh);
header('Location: '.$_SESSION['productid'].'.php');
}
deze code staat in het add product script, en tegelijkertijd zet hij het nu in een database. Hij maakt het bestandje keurig aan en in het bestandje staan dan":
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
include_once "../../connect.php"; //verbinding maken
$ab = $_SESSION['aangemaakt'];
$query = "SELECT * FROM products WHERE naam=gerhard1";
$sql = mysql_query($query) or die ( mysql_error( ) );
//query is uitgevoerd
while($record = mysql_fetch_object($sql)){
echo "<table border=2>";
echo "<tr><td>Code</td><td>".$record->id."</td></tr>";
echo "<tr><td>Naam</td><td>".$record->naam."</td></tr>";
echo "<tr><td>Omschrijving</td><td>".$record->omschrijving."</td></tr>";
echo "<tr><td>platform</td><td>".$record->platvorm."</td></tr>";
echo "<tr><td>genre</td><td>".$record->genre."</td></tr>";
echo "<tr><td>datum</td><td>".$record->date."</td></tr>";
echo "<tr><td>Prijs</td><td>".$record->prijs."</td></tr>";
echo '<a href="../all/">alles bekijken</a><br>
<a href="../test/">toevoegen</a>';
}
?>
include_once "../../connect.php"; //verbinding maken
$ab = $_SESSION['aangemaakt'];
$query = "SELECT * FROM products WHERE naam=gerhard1";
$sql = mysql_query($query) or die ( mysql_error( ) );
//query is uitgevoerd
while($record = mysql_fetch_object($sql)){
echo "<table border=2>";
echo "<tr><td>Code</td><td>".$record->id."</td></tr>";
echo "<tr><td>Naam</td><td>".$record->naam."</td></tr>";
echo "<tr><td>Omschrijving</td><td>".$record->omschrijving."</td></tr>";
echo "<tr><td>platform</td><td>".$record->platvorm."</td></tr>";
echo "<tr><td>genre</td><td>".$record->genre."</td></tr>";
echo "<tr><td>datum</td><td>".$record->date."</td></tr>";
echo "<tr><td>Prijs</td><td>".$record->prijs."</td></tr>";
echo '<a href="../all/">alles bekijken</a><br>
<a href="../test/">toevoegen</a>';
}
?>
maar daar krijg ik dus die error dus ik dacht ik probeer:
$query = "SELECT * FROM products WHERE naam='gerhard1'";
of
$query = SELECT * FROM products WHERE naam='gerhard1';
maar geen resultaat
en de column naam bestaat wel maar het lijkt wel alsof hij zoekt naar een kolom met gerhard1?
in de phpmyadmin is het product wel netjes toegevoegt
2410 gerhard1 gerhard 1.00 2010-11-17 04:30:19 gerhard gerhard 19
en als ik op view all click laat hij ook gewoon alle producten zien, ik snap niet zo goed waar het nu misgaat? iemand tips?
SQL injections mogelijk.
Selecteer welke velden je wilt hebben. Gebruik niet *.
Die moet je niet gebruiken.
Objecten fetchen is de grootste onzin die er bestaat.
het handige hier van is dat je ook ziet aan de kleurtjes wat er fout gaat + al dat geescape hoeft niet
Toevoeging op 17/11/2010 10:59:30:
@Teun vertel me dan wat er fout gaat;)
Toevoeging op 17/11/2010 11:16:45:
@karl ik zal de * veranderen.
alleen ik snap gewoon niet waar die Unknown column 'gerhard1' in 'where clause' weg komt
Vanaf regel 5 wordt alles opeens rood in script 1. Rara hoe kan dat.
$query = "SELECT * FROM products WHERE naam=\''.$_POST['naam'].'\'";
levert nu op:
$query = "SELECT * FROM products WHERE naam='admin'";
nu de * nog veranderen, maar als ik mysql_real_escape_string gebruik is dat genoeg tegen sql injectie?
Toevoeging op 17/11/2010 11:39:20:
@dave iedereen zit altijd te zeuren: plaats relevante code, nu plaats ik relevante code maar kloppen de kleuren niet, tja daar kan ik dan ook nix aan doen. kijk dan zelf ook even, hij moet een bestand writen dus moet ik die en shit wel escapen anders gaat ie het uitvoeren in dezelfde pagina terwijl hij het moet schrijven!
Gewijzigd op 17/11/2010 11:42:28 door gerhard l
Overigens bedoelde Dave (denk ik) dat je de fout kan zien als je naar de kleuren kijkt. Hij zegt niets over de relevante code of iets. Gebruik een editor met syntax-highlighting zodat je dat in het vervolg zelf al kan zien ;-)
@chris ja bedankt voor de uitleg, maar ik begreep dave in ieder geval anders, want hij heeft over vanaf regel 5 word alles rood, ik gebruik notepad++ maar ik zie ook wel dat het dan buiten werking was, ik bedoel als hij zelf gekeken had wat er gevraagd werd, en niet zomaar reageren in het niets, want dat alles rood was klopt wel omdat dat stukje gewrite moest worden en niet uitgevoerd. in ieder gevalt bedankt iedereen!