2017-01-12 8 views
-1

Ich frage mich, welche Fehler in dieser ziemlich einfachen Update-Anweisung mit alten Version von PHP gemacht wurde. Wenn ich die Aussage widerspreche, sagt update-Anweisung, dass das Formular ordnungsgemäß übermittelt wird. HierPHP MySQL Rekord Update Fehler

ist der Code:

<?php 
echo $q = "UPDATE notice SET FromDate = $notice_fromdate, ToDate = $notice_todate, VacType ='$notice_vactype',NoticeDetail ='$notice_detail',Status ='$notice_status' WHERE ID=$id"; 

if (mysql_query($link, $q)) { 
    echo "Record updated successfully"; 
} else { 
    echo "<h3>Error updating record</h3>". mysql_error($link)."-". mysql_errno($link). "\n"; 
} 

?> 

und der Ausgang wieder diesen

UPDATE notice SET FromDate = 2017-01-08, ToDate = 2017-01-09, VacType ='May Day',NoticeDetail ='Testing',Status ='Enabled' WHERE ID=3 
Error updating record 
-0 

ich sein weiß eine ziemlich einfache Sache, ich glaube, ich habe keinen Fehler in der Update-Anweisung gemacht, sondern Es wird Fehleraktualisierungssatz angezeigt. Ich habe die Ausgabe SQL-Anweisung kopiert und bei phpmyadmin ausgeführt, es hat richtig funktioniert. Es wäre schön, wenn du mir helfen könntest. Vielen Dank im Voraus

Hinweis: Kunden Website auf alte Version von PHP gebaut, ich weiß, dass einige Funktionen veraltet wurde, so wäre es besser, wenn Sie nicht über die Version diskutieren oder kritisieren.

+4

** WARNUNG **: Wenn Sie nur PHP lernen, bitte, verwenden Sie nicht die [ 'mysql_query'] (http://php.net /manual/en/function.mysql-query.php) Schnittstelle. Es ist so schrecklich und gefährlich, dass es in PHP 7 entfernt wurde. Ein Ersatz wie [PDO ist nicht schwer zu erlernen] (http://net.tutsplus.com/tutorials/php/why-you-should-beusing-phps) -pdo-for-database-access /) und ein Leitfaden wie [PHP The Right Way] (http://www.phptherightway.com/) erläutert Best Practices. Ihre Benutzerdaten sind ** nicht ** [richtig maskiert] (http://bobby-tables.com/php.html) und es gibt [SQL injection bugs] (http://bobby-tables.com/) und kann ausgenutzt werden. – tadman

+0

Ich würde Ihnen ein PDO-Beispiel geben, aber ich denke, Sie wissen bereits, dass Sie Mysql_ nicht verwenden sollten, indem Sie Ihre Aussage "ziemlich einfache Update-Anweisung mit alten Version von PHP." – Option

+0

Das Problem ist, dass Sie selbst sind -Inflcling SQL-Injektion, so dass Ihr Datum eine arithmetische Operation wird. –

Antwort

-2

Nehmen Zitate Termine wird es funktionieren

<?php 
echo $q = "UPDATE notice SET FromDate = '$notice_fromdate', ToDate = '$notice_todate', VacType ='$notice_vactype',NoticeDetail ='$notice_detail',Status ='$notice_status' WHERE ID=$id"; 

if (mysql_query($link, $q)) { 
    echo "Record updated successfully"; 
} else { 
    echo "<h3>Error updating record</h3>". mysql_error($link)."-". mysql_errno($link). "\n"; 
} 

?> 
+0

Dies ist ein Hack. Das eigentliche Problem ist ein völliger Mangel an Flucht. – tadman

+0

@tadman Eigentlich hat der Beantworter den gleichen Fehler gemacht wie das OP: "mysql_query ($ link, $ q)" - Sie stellen (auch) den Wagen vor das Pferd, * sozusagen; wahrscheinlich die Wurzel des (realen) Problems. Wenn das OP jedoch mit der mysqli_ API verbunden ist, wissen wir, wie das enden wird. –