古いバージョンのPHPを使用してこの簡単な更新ステートメントで何が間違っているのでしょうか。私は、ステートメントをエコーする場合は、更新声明がフォームが正しく提出されていると言う。ここでPHP MySQLのレコードの更新エラー
コードです:
<?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";
}
?>
と出力リターンこの
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
私はその非常に単純なことを知って、私は更新ステートメント内の任意のミスを犯したが、代わりにしていないと思いますエラー更新レコードを表示しています。出力されたSQL文をコピーしてphpmyadminで実行したところ、正しく動作しました。あなたが私を助けることができればいいと思う。前もってありがとうございます
注:クライアントのWebサイトは古いバージョンのPHPで構築されていますので、バージョンについて議論したり批判しない方がよいでしょう。
を動作する日付に引用符を適用します** WARNING **:あなただけのPHPを学習している場合は、[ 'mysql_query']を使用しないでください(http://php.net /manual/en/function.mysql-query.php)インターフェイス。それはPHP 7で削除されたのでとてもひどいと危険です。[PDOのようなものは学ぶのが難しくない](http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps -pdo-for-database-access /)と[PHP The Right Way](http://www.phptherightway.com/)のようなガイドがベストプラクティスを説明しています。あなたのユーザーデータは**適切にエスケープされていない**(http://bobby-tables.com/php.html)であり、[SQLインジェクションのバグ](http://bobby-tables.com/)があります。悪用される。 – tadman
私はあなたにPDOの例を挙げたいと思いますが、あなたは、古いバージョンのphpを使って簡単な更新ステートメントで文章で判断することをMysql_を使ってはいけないということを既に知っていると感じています。 " – Option
問題は、あなたの日付が算術演算になるようにSQLインジェクションを実行します。 –