2016-06-17 12 views
0

最近私のサーバーをアップグレードしてスムーズに移行しましたが、「MySQL Erorr」が表示され、正しく機能していないものが固定されました。詳細がデータベースに格納されていません

このコード:

 $date = date("M jS"); 
     $articleTime = date("g:iA T"); 
     $articleTime = str_replace('EDT', 'EST', $articleTime); 
     $ip = getenv("REMOTE_ADDR");   
     $insertYo = "INSERT INTO activity (date, articleTime, action, icon, ip) VALUES ('$date', '$articleTime', '<strong><a href=\"/articles\">\Archives</a></strong> viewed on $date @', 'fa-archive', '$ip')";   
     mysql_query($insertYo) or die('MySQL Error.'); 

それは正しく挿入されていません。私のデータベース設計は、 "アクティビティ" の設定はどのようにある:

enter image description here

Database Design

は、私はここで何か間違ったことをやっていますか?私はそれも私のデータベースと何か関係があるかもしれないと信じていますが、レイアウトの他の部分はこのページのこのコードなしで動作します。

+0

http://php.net/manual/ja/mysqli.error.php –

答えて

2

データテーブルには、ヌル値を持たない7つのカラムがあり、デフォルトのフィールド値はありませんが、INSERT文では5つのカラムしか指定しません。データベースは他の2つの列に何を入れるべきかを知る必要があるので、これを行うことはできません。それらの列をINSERTステートメントに追加するか、それらの列をNULL可能にするために表を変更するか、それらの列のデフォルト値を指定します。

どのソリューションを使用するかは、アプリケーションのビジネスニーズによって異なります。たとえば、処理する必要のある列はarticleidとarticleTitleです。アクティビティが特定のアーティクルIDに関連付けられていないことは、アプリケーションのコンテキスト内で意味を持ちますか?そうであれば、その列はNULL可能にする必要があります。

わかりやすい現実の類推として、従業員は通常EmployeeIdを持っていなければなりませんが、必ずしもHeadquartersDeskNumberを持つ必要はありません。たぶん彼らはホームオフィスを持つロービングセールスマンです。

関連する問題