Sooda!
 閲覧数:49
PHPとSQLで社員マスタを作成しています。少し分からない所があるので出来れば教えてください。ソースは長いので、OSDNというサイトにコピペしました。

https://osdn.net/users/nannpure/pastebin/4447

社員マスタに登録、更新、論理削除が行える関数を作ったのですが、

// ↓登録を行う場合の処理
if( $button_entry ){
$params = array(
':id' => $id //社員ID
, ':cd' => $cd //保険番号
, ':last_name' => $last_name //姓
, ':last_name_kana' => $last_name_kana //姓カナ
, ':first_name' => $first_name //名
, ':first_name_kana' => $first_name_kana //名カナ
, ':zipcode' => $zipcode //郵便番号
, ':address' => $zipcode_address //住所
, ':tel' => $tel //電話番号
, ':mobile' => $mobile //携帯電話番号
, ':mail_address' => $mail_address //メールアドレス
, ':delete_flag' => $delete_flag //削除フラグ
, ':regist_user' => $regist_user //登録者
, ':regist_date' => $insert_date //登録日時
) ;

$sql = " INSERT INTO master_employee " ; //ベースとなるSQL。INSERTを行う。

//パラメータの数に応じてプレースホルダを用意する
$ph = $conn->trimPlaceholder( $params ) ;

//パラメータがないときは条件にしない
if( $ph != "" ){
//ベースのSQLに条件文を結合
$sql .= " VALUES( :id , :cd , :last_name , :last_name_kana , :first_name , :first_name_kana , :zipcode , :address , :tel , :mobile , :mail_address , :delete_flag , :regist_user , :regist_date ) " ;
}
// ↓更新を行う場合の処理
} else if( $button_update ){
$params = array(
':id' => $id //社員ID
, ':cd' => $cd //保険番号
, ':last_name' => $last_name //姓
, ':last_name_kana' => $last_name_kana //姓カナ
, ':first_name' => $first_name //名
, ':first_name_kana' => $first_name_kana //名カナ
, ':zipcode' => $zipcode //郵便番号
, ':address' => $zipcode_address //住所
, ':tel' => $tel //電話番号
, ':mobile' => $mobile //携帯電話番号
, ':mail_address' => $mail_address //メールアドレス
, ':delete_flag' => $delete_flag //削除フラグ
, ':update_user' => $update_user //更新者
, ':update_date' => $update_date //更新日時
) ;

$sql = " UPDATE master_employee SET " ; //ベースとなるSQL。UPDATEを行う。

//パラメータの数に応じてプレースホルダを用意する
$ph = $conn->trimPlaceholder( $params ) ;

//パラメータがないときは条件にしない
if( $ph != "" ){
//ベースのSQLに条件文を結合
$sql .= " cd = :cd , last_name = :last_name , last_name_kana = :last_name_kana , first_name = :first_name , first_name_kana = :first_name_kana , zipcode = :zipcode , address = :address , tel = :tel , mobile = :mobile , mail_address = :mail_address , delete_flag = :delete_flag , update_user = :update_user , update_date = :update_date WHERE id = :id " ;
}
// ↓論理削除を行う場合の処理
} else if( $button_deletion ){
$params = array(
':id' => $id //社員ID
, ':delete_flag' => $delete_flag //削除フラグ
) ;

$sql = " UPDATE master_employee SET " ; //ベースとなるSQL。UPDATEを行う。

//パラメータの数に応じてプレースホルダを用意する
$ph = $conn->trimPlaceholder( $params ) ;

//パラメータがないときは条件にしない
if( $ph != "" ){
//ベースとなるSQLに条件文を追加
$sql .= " delete_flag = :delete_flag WHERE id = :id " ;
}
}

$result = $conn->executeQueryFetchAll( $sql , $params ) ;

これで$resultの中身がArray()なら、エラーであると表示される処理を書いたのですが、更新と論理削除はないデータを更新、論理削除をしようとすると中身がArray()になり、エラーが表示されるのですが、登録は普通に登録をしようとしても、重複しているIDを登録しても、中身がArray()になり、どちらもエラーが表示されます。元々IDはSQLのテーブルでPRIMARYKEYに設定されているので、登録されないのですが、何かエラーでそのことが伝えることができないかと考えています。

SQLで登録処理をしている所IDが重複している所でPHPやブラウザ上でエラーを表示させるにはどうしたらいいでしょうか。具台的な解決策や初心者にも分かりやすい参考サイトやそんな方法はないという意見でも構いません。教えて頂けると幸いです。よろしくお願いいたします

質問者:ooo
質問日時:2016-11-16 23:14:33
カテゴリ:インターネット・パソコン>技術・プログラミング


↓↓現在集まっている回答 0〜0件/0件中
 
この質問を友達に教える
→ヘルプ
ほしい情報が見つからないときは
新しい質問をする

↑このページのトップへ
TOP マイページ ヘルプ