人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHP5.1.6、MySQL4.0.2x でのDBシンタックスエラーが全然取れません。
エラー箇所は(A)と(B)の二箇所で、Undefined indexです。
なんか間違ってますか?

ハマってます。
どなたか助けてくださいm(_ _)m


function db_modify_wordmaster($conn, $worddata){

$worddata['word_name']= addslashes($worddata['word_name']); //(A)
$worddata['word_count']= addslashes($worddata['word_count']); //(B)

$sql = <<<EOS
UPDATE word_master
SET
word_count= {$worddata['word_count']},
word_reload= now()
WHERE
word_name= '{$worddata['word_name']}'
EOS;
//$sql = euc2sjis_for_Winodows($sql);
$result = execute_sql($conn, $sql);
}

●質問者: seadwell
●カテゴリ:ウェブ制作
✍キーワード:dB EOS INDEX SET SQL
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● tezcello
●50ポイント

エラーメッセージは、未定義の添字ですから、関数に引き渡された値を確認してみては?

例えば、(A)の前に、

var_dump($worddata);

を入れてみるとか。


もしかしたら、この関数が呼ばれるのはform等から何か送られてくるのを前提としているのでは?

最初にそのformを表示する時も呼んでしまっていて、$worddata['word_name'] などは未定義のままとか?

◎質問者からの返答

> はform等から何か送られてくるのを前提としているのでは?

> 最初にそのformを表示する時も呼んでしまっていて、$worddata['word_name'] などは未定義のままとか?

全くそのとおりです^^;

PHPというかプログラムを始めたばかりで独学なので、何が問題なのか?切り分けられてないのです。

以下のコメントに、DBルーチンに飛ばす前ののコードを書いてみました。

もしよろしければ、アドバイスなどいただければ幸いですm(_ _)m


2 ● zebevogue
●50ポイント ベストアンサー

引数に指定している$worddataにインデックスが無いらしいので、

関数に入った直後の値をvar_dumpなどでチェックしてみてはどうでしょうか?

必ず入っていなければならないのであれば、

if(isset($worddata['word_name'])) {

return false;

}

などとして処理を中断するなどをしてはどうでしょうか。

◎質問者からの返答

こんにちは、ご回答ありがとうございます。

if(isset($worddata['word_name'])) {

return false;

}

で逃げたつもりですが、なんか処理は進み前進はあったものの違うエラーが出てきました。

以下のコメントに、DBルーチンに飛ばす前ののコードを書いてみました。

お時間があれば、アドバイスなどいただければ幸いですm(_ _)m

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ