query wordt niet uitgevoerd
voor een project dien ik enkel gegevens in de datbase op te slaan die uit een formulier komen. Mijn controle etc werkt allemaal maar vanaf dat mijn script aan de mysqli_query komt gebeurt er niets meer en ik zie niet waar mijn fout zit.
Mijn kolommen in de betreffende tabel: PK_fotoID, FK_UserID, foto, seisoon.
De user is nog even hard coded omdat mijn login en registratie systeem nog niet geschreven is.
Als ik iets niet invul krijg ik mooi mijn foutmeldingen. Maar als ik alles correct invul krijg ik enkel mijn var_dump's te zien en voor de rest krijg ik een witte pagina, als ik in mijn database ga kijken is er ook niets bijgekomen.
mijn code die ik aan het schrijven ben (momenteel nog buiten mijn applicatie om het deftig te kunnen testen en vooral begrijpen omdaar na prober te implementeren).
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
31
32
33
34
35
36
37
38
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
<?php
$connect = new mysqli('localhost', 'root', 'root', 'ioutfit');
if(isset($_POST['send'])) {
var_dump($_FILES['myfile']);
var_dump($_POST);
//echo 'the form has been submitted';
if($_FILES['myfile']['size'] == 0) {
//geen bestand geselecteerd
echo "Gelieve een foto te selecteren";
}
if($_POST['seisoon'] == null) {
echo "gelieve een seisoon in te vullen";
}
else {
$file = file_get_contents($_FILES['myfile']['tmp_name']);
$seisoon = $_POST['seisoon'];
$seisoon = strtolower($seisoon);
$user = 1;
if($seisoon == "winter" || $seisoon == "lente" || $seisoon == "zomer" || $seisoon == "herfst") {
//echo 'check!';
$query = "INSET INTO tblFotos (PK_userID, foto, seisoon) VALUES (" . $user . "," . $file. "," . $seisoon . ")";
$result = mysqli_query($connect, $query);
if(!$result) {
die("Database query faild : " + mysqli_error($connect));
}
else {echo 'success';}
}
else {
echo 'gelieve een geldig seisoon in te vullen';
}
}
}
?>
<form method="post" action="input-test.php" id="upload-form" name="upload-form" enctype="multipart/form-data">
<input id="myfile" name="myfile" type="file" accept="image/*;capture=camera">
<input id="seisoon" name="seisoon" type="text" />
<input type="submit" name="send" id="send" value="send" />
</form>
$connect = new mysqli('localhost', 'root', 'root', 'ioutfit');
if(isset($_POST['send'])) {
var_dump($_FILES['myfile']);
var_dump($_POST);
//echo 'the form has been submitted';
if($_FILES['myfile']['size'] == 0) {
//geen bestand geselecteerd
echo "Gelieve een foto te selecteren";
}
if($_POST['seisoon'] == null) {
echo "gelieve een seisoon in te vullen";
}
else {
$file = file_get_contents($_FILES['myfile']['tmp_name']);
$seisoon = $_POST['seisoon'];
$seisoon = strtolower($seisoon);
$user = 1;
if($seisoon == "winter" || $seisoon == "lente" || $seisoon == "zomer" || $seisoon == "herfst") {
//echo 'check!';
$query = "INSET INTO tblFotos (PK_userID, foto, seisoon) VALUES (" . $user . "," . $file. "," . $seisoon . ")";
$result = mysqli_query($connect, $query);
if(!$result) {
die("Database query faild : " + mysqli_error($connect));
}
else {echo 'success';}
}
else {
echo 'gelieve een geldig seisoon in te vullen';
}
}
}
?>
<form method="post" action="input-test.php" id="upload-form" name="upload-form" enctype="multipart/form-data">
<input id="myfile" name="myfile" type="file" accept="image/*;capture=camera">
<input id="seisoon" name="seisoon" type="text" />
<input type="submit" name="send" id="send" value="send" />
</form>
Verder missen ook de quotes in je query, om elke string waarde die je in wilt voeren dienen quotes te staan, net als om strings in php.
Ik heb reeds overal al met quotes proberen te werken maar dit was ook tevergeefs.
Toevoeging op 28/12/2013 12:52:04:
EDIT:
ik had bij mijn error check een + (javascript) ipv een . (php) staan.
Nu krijg ik onderstaande error:
Database query faild : 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 '±ïѼ§&µœ&¨4AÔIš‘ c¨3H`v’Éä>kíÙ;3™=“™’ß‚' at line 1
Toevoeging op 28/12/2013 12:54:28:
EDIT2:
kleinere foto geeft deze error: MySQL server has gone away
Toevoeging op 28/12/2013 13:04:38:
EDIT3:
code:
Code (php)
Gewijzigd op 28/12/2013 13:05:15 door joren vh
Je moet de variabelen die je insert escapen, ook de foto.
Nu werkt mijn script wel op mijn local server maar van zodra ik deze op mijn webserver zet plaatst hij mijn $file in de betrefende kolom maar is deze leeg?
Iemand enig idee hoe dit kan komen?
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
31
32
33
34
35
36
37
38
39
40
41
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
40
41
<?php
$connect = new mysqli('localhost', 'root', 'root', 'ioutfit');
if(isset($_POST['send'])) {
var_dump($_FILES['myfile']);
var_dump($_POST);
//echo 'the form has been submitted';
if($_FILES['myfile']['size'] == 0) {
//geen bestand geselecteerd
echo "Gelieve een foto te selecteren";
}
if($_POST['seisoon'] == null) {
echo "gelieve een seisoon in te vullen";
}
else {
$file = file_get_contents($_FILES['myfile']['tmp_name']);
$file = base64_decode($file);
$seisoon = $_POST['seisoon'];
$seisoon = strtolower($seisoon);
$user = 1;
if($seisoon == "winter" || $seisoon == "lente" || $seisoon == "zomer" || $seisoon == "herfst") {
//echo 'check!';
//mysql_ping($connect);
$query = "INSERT INTO tblFotos (FK_userID, foto, seisoon) VALUES (" . $user . ",'" . $file. "','" . $seisoon . "')";
$result = mysqli_query($connect, $query);
echo $file;
if(!$result) {
die("Database query faild : " . mysqli_error($connect));
}
else {echo 'success';}
}
else {
echo 'gelieve een geldig seisoon in te vullen';
}
}
}
?>
<form method="post" action="input-test.php" id="upload-form" name="upload-form" enctype="multipart/form-data">
<input id="myfile" name="myfile" type="file" accept="image/*;capture=camera">
<input id="seisoon" name="seisoon" type="text" />
<input type="submit" name="send" id="send" value="send" />
</form>
$connect = new mysqli('localhost', 'root', 'root', 'ioutfit');
if(isset($_POST['send'])) {
var_dump($_FILES['myfile']);
var_dump($_POST);
//echo 'the form has been submitted';
if($_FILES['myfile']['size'] == 0) {
//geen bestand geselecteerd
echo "Gelieve een foto te selecteren";
}
if($_POST['seisoon'] == null) {
echo "gelieve een seisoon in te vullen";
}
else {
$file = file_get_contents($_FILES['myfile']['tmp_name']);
$file = base64_decode($file);
$seisoon = $_POST['seisoon'];
$seisoon = strtolower($seisoon);
$user = 1;
if($seisoon == "winter" || $seisoon == "lente" || $seisoon == "zomer" || $seisoon == "herfst") {
//echo 'check!';
//mysql_ping($connect);
$query = "INSERT INTO tblFotos (FK_userID, foto, seisoon) VALUES (" . $user . ",'" . $file. "','" . $seisoon . "')";
$result = mysqli_query($connect, $query);
echo $file;
if(!$result) {
die("Database query faild : " . mysqli_error($connect));
}
else {echo 'success';}
}
else {
echo 'gelieve een geldig seisoon in te vullen';
}
}
}
?>
<form method="post" action="input-test.php" id="upload-form" name="upload-form" enctype="multipart/form-data">
<input id="myfile" name="myfile" type="file" accept="image/*;capture=camera">
<input id="seisoon" name="seisoon" type="text" />
<input type="submit" name="send" id="send" value="send" />
</form>
Toevoeging op 28/12/2013 17:13:23:
EDIT
HEt probleem dat ik net beschreven heb blijkt zich enkel voor te doen als ik via mijn gsm een foto trek en wil uploaden.
Je upload de foto en schrijft het pad/de naam weg in de database.
Mijn vraag blijft: waarom werkt dit op computer wel maar mobiel niet? Ik kan via mijn iphone mooi een foto trekken of selecteren, deze voegt hij dan ook toe aan het formulier als ik het verzend krijg ik mooi mijn var_dump van die file te zien maar in de database is deze ingevuld maar LEEG dus 0 bytes groot. Hoe komt dit?