qualitum logo
Problem med Insert Query

PHPportalen Forum Index » PHP Mjukstart
Lägg ett bokmärke på hela tråden
Skapa nytt inlägg   Svara på inlägget
Visa föregående ämne :: Visa nästa ämne  
Startad av: Meddelande
Cia



Medlem i: 1523 dagar

Status: Offline



#645072
Inlägg Skrivet: 2009-06-30 21:47      Ämne: Problem med Insert Query Citera

Jag får följande felmeddelande och jag hittar inte felet.

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 'schedule (kurs_namn, kurs_date, kurs_teacher, schedule_name) VALUES('test', '2009-' at line 1

Här är koden:

PHP:
1:
 function getDayName($dayNr){
2:
    $dayNames = array (
3:
        'Söndag''Måndag''Tisdag''Onsdag',
4:
        'Torsdag''Fredag''Lördag');
5:
    return $dayNames[$dayNr];
6:
7:
 
8:
function getMonthName($monthNr){
9:
    $monthNames = array(
10:
        => 'januari''Februari''Mars''April''Maj''Juni',
11:
        'Juli''Augusti''September''Oktober''November''December');
12:
    return $monthNames[$monthNr];
13:
}
14:
 
15:
function zerofill($mStretch$iLength 2)
16:
{
17:
    $sPrintfString '%0' . (int)$iLength 's';
18:
    return sprintf($sPrintfString$mStretch);
19:
}
20:
   
21:
// Lagg till event
22:
if (isset($_POST['submitted'])) {
23:
   $m $_POST["month"];
24:
   $d $_POST["day"];
25:
   $y $_POST["year"];
26:
   $h $_POST["hours"];
27:
   $min $_POST["min"];
28:
 
29:
 
30:
   $kurs_date $y."-".$m."-".$d." ".$h.":".$min.":00";
31:
   $kurs_namn htmlentities($_POST["kurs_namn"]);
32:
   $kurs_teacher htmlentities($_POST["kurs_teacher"]);
33:
 
34:
 
35:
   $q "INSERT INTO schedule (kurs_namn, kurs_date, kurs_teacher, schedule_name) VALUES('$kurs_namn', '$kurs_date', '$kurs_teacher','b2')";
36:
   $r mysqli_query($mysqli$q) or die(mysqli_error($mysqli));
37:
 
38:
if ($r) { 
39:
      
40:
         // OK
41:
         echo '<p class="error">Händelsen är nu inlagd i databasen!</p>';
42:
         echo '<p><a href="schema.php">Tillbaka</a></p>';   
43:
      
44:
      } else {
45:
      echo '<p class="error">Ett fel uppstod det gick inte att lägga in händelsen i databasen. Var god försök igen!</p>'
46:
      }
47:
            
48:
mysqli_close($mysqli);
49:
// End på submit
50:
 
51:
// show form 
52:
echo "
53:
<form method=\"post\" action=\"".$_SERVER["PHP_SELF"]."\">
54:
 
55:
<p>Lägg till fält i schema</p>
56:
 
57:
<table width=\"400\">
58:
";
59:
// input kursnamn
60:
echo "
61:
<tr>
62:
<td><p><b>Kursnamn </b><em>(Max 255 tecken)</em></p></td>
63:
<td>
64:
<input type=\"text\" name=\"kurs_namn\" size=\"25\" maxlength=\"255\" class=\"skugga\"/>
65:
</td>
66:
</tr>
67:
";
68:
 
69:
// select datum ar, manad, dag
70:
echo"
71:
<tr>
72:
<td><p><b>Datum </b></p></td>
73:
<td>  
74:
   <SELECT name='year' class='select1'>";
75:
      $year date("Y");
76:
      for($i=$year-1;$i<=$year+5;$i++){
77:
         if($year == $i){
78:
            $sel "SELECTED";
79:
         }else{
80:
            $sel "";
81:
         }
82:
         echo "<option value='$i$sel>$i</option>";
83:
      }
84:
      echo"</SELECT>&nbsp;&nbsp;";
85:
     
86:
      echo"<SELECT name='month' class='select1'>";
87:
      $month date("n");
88:
      for($i=1;$i<=12;$i++){
89:
         if($month == $i){
90:
            $sel "SELECTED";
91:
         }else{
92:
            $sel "";
93:
         }
94:
         $selmonth getMonthName($i);
95:
         echo "<option value='$i$sel>$selmonth</option>";
96:
      }
97:
      echo"</SELECT>&nbsp;&nbsp;";
98:
     
99:
      echo"<SELECT name='day' class='select1'>";
100:
      $day date("j");
101:
      for($i=1;$i<=31;$i++){
102:
         if($day == $i){
103:
            $sel "SELECTED";
104:
         }else{
105:
            $sel "";
106:
         }
107:
         echo "<option value='$i$sel>$i</option>";
108:
      }
109:
      echo"</SELECT>";
110:
     echo"</td></tr>";
111:
     
112:
// input tid
113:
echo"     
114:
<tr>
115:
<td><p><b>Tid </b><em>(hh:mm)</em></p></td>
116:
<td>
117:
<select name='hours' class='select1'>";
118:
$hours date("H");
119:
for ($x=1$x <= 24$x++) {
120:
if($hours == $x){
121:
            $sel "SELECTED";
122:
         }else{
123:
            $sel "";
124:
         }
125:
   echo "<option value='$x$sel>$x</option>";
126:
}
127:
echo "</select> :";
128:
echo "<select name='min' class='select1'>";
129:
           
130:
$min date("i");
131:
for ($x=0$x <= 59$x++) {
132:
if($min == $x){
133:
            $sel "SELECTED";
134:
         }else{
135:
            $sel "";
136:
         }
137:
       
138:
      $minutes zerofill($x);
139:
         echo "<option value='$x$sel>$minutes</option>";
140:
}
141:
echo "</select>";
142:
 
143:
echo"</td></tr>";
144:
     
145:
     
146:
// input larare
147:
echo"
148:
<tr>
149:
<td><p><b>Lärare </b><em>(Max 50 tecken)</em></p></td>
150:
<td>
151:
<input type=\"text\" name=\"kurs_teacher\" size=\"25\" maxlength=\"255\" class=\"skugga\"/>
152:
</td>
153:
</tr>
154:
";
155:
 
156:
 
157:
echo"
158:
<tr><td></td><td align=\"right\">
159:
<input type=\"hidden\" name=\"m\" value=\"".$m."\">
160:
<input type=\"hidden\" name=\"d\" value=\"".$d."\">
161:
<input type=\"hidden\" name=\"y\" value=\"".$y."\">
162:
<input type=\"hidden\" name=\"h\" value=\"".$h."\">
163:
<input type=\"hidden\" name=\"min\" value=\"".$min."\">
164:
<input type=\"submit\" name=\"submit\" value=\"Lägg till\" class=\"select1\">
165:
<input type=\"hidden\" name=\"submitted\" value=\"TRUE\" />
166:
</form>
167:
</td></tr>
168:
</table>
169:
";
170:
mysqli_close($mysqli);
171:


Senast ändrad av Cia den 2009-07-01 11:39, ändrad totalt 1 gång
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida
xCr



Medlem i: 3527 dagar
Från: Göteborg
Status: Offline



#645076
Inlägg Skrivet: 2009-06-30 22:06      Ämne: Citera

Jag vet inte om det är det som är felet, men du har missat ett mellanslag mellan sista bokstaven i VALUES och den efterföljande parentesen.
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Cia



Medlem i: 1523 dagar

Status: Offline



#645080
Inlägg Skrivet: 2009-06-30 22:33      Ämne: Citera

tack men nej det var inte det. Sad
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida
xCr



Medlem i: 3527 dagar
Från: Göteborg
Status: Offline



#645088
Inlägg Skrivet: 2009-06-30 23:13      Ämne: Citera

Hur ser din query ut?
Alltså det du skickar till MySQL (http://www.phpportalen.net/viewtopic.php?t=95829&highlight=sql).
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Cia



Medlem i: 1523 dagar

Status: Offline



#645102
Inlägg Skrivet: 2009-07-01 07:52      Ämne: Citera

Jag läste sidan tipsade om och gjorde felsökning och fick följande meddelande, samma som innan:

SQL error: 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 'schedule (kurs_namn, kurs_date, kurs_teacher, schedule_name) VALUES ('test', '2009' at line 1
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida
pengi
Ex-Moderator



Medlem i: 2389 dagar
Från: JO57XQ
Status: Offline



#645103
Inlägg Skrivet: 2009-07-01 08:47      Ämne: Citera

när man frågar om hur queryn ser ut så menar man att du ska skriva ut själva queryn m.h.a. t.ex. echo istället för att köra den med mysqli_query.

Vi vill veta hur hela queryn ser ut, genererad, och inte bara felmeddelandet.


En teori jag har är att det ligger ett ' någonstans i någon variabel. En annan teori jag har är att något mellanslag inte är ett vanligt mellanslag, utan något dolt tecken (t.ex. nonbreaking space).

Du escapear i vilket fall inte någon variabel riktigt. Denna query går lätt att injecta på. Kolla SQL-injections här:
http://www.phpportalen.net/viewtopic.php?t=72202
 

_________________
"Question everything. Never trust propaganda. Keep on hacking." - Phrack
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida
Cia



Medlem i: 1523 dagar

Status: Offline



#645106
Inlägg Skrivet: 2009-07-01 09:11      Ämne: Citera

Helt plötsligt funkade det, fråga mig inte vad jag jag gjorde för det vet jag inte.
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida
Wedge
Administratör



Medlem i: 3918 dagar
Från: Järfälla
Status: Offline



#645115
Inlägg Skrivet: 2009-07-01 11:36      Ämne: Citera

"Någon som ser vad som är fel?" är fel.
Skriv tydliga rubriker på trådarna.
 

_________________
Qualitum Webbhotell | Gomoku.se | PHP6.se
Skådebröd är fullt av optisk fiber
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida MSN Messenger
Cia



Medlem i: 1523 dagar

Status: Offline



#645116
Inlägget är accepterad som det rätta svaret Skrivet: 2009-07-01 11:38      Ämne: Citera

Ok,
ska tänka på det till nästa gång.
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida
Visa tidigare inlägg:   
Skapa nytt inlägg   Svara på inlägget
PHPportalen Forum Index » PHP Mjukstart
Hoppa till:  
Du kan inte skapa nya inlägg i det här forumet
Du kan inte svara på inlägg i det här forumet
Du kan inte ändra dina inlägg i det här forumet
Du kan inte ta bort dina inlägg i det här forumet
Du kan inte rösta i det här forumet
Du kan inte bifoga filer i detta forum
Du kan inte ladda ner filer från detta forum
Kontakta oss på adressen: info@phpportalen.net
Webbplatsen bygger i grunden på phpBB © 2001, 2002 phpBB Group

Modifieringar har senare gjorts i systemet av PHPportalen
Sid och logotypdesign skapad av Daren Jularic
qualitum logo