ここに私のコードです(または機能?):PHP ADOdbのアクティブレコード::置き換え()バグ
$user->user_id = 3;
$user->email='';
$user->password=md5('123456');
$user->Replace();
それはSQLを生成:
UPDATE pre_user SET email=,password='e10adc3949ba59abbe56e057f20f883e' WHERE user_id=3
ちょうどあなたが見ることができるもののように、空文字列の引用符はありません。その後、私はADODB-アクティブrecord.inc.phpで)(doquoteを機能させるコードは、次のとおり631と怒鳴るコードを見つけました:
case 'C'://I think this means 'Char' and email field should be this.
case 'X':
if (is_null($val)) return 'null';
if (strlen($val)>0 &&
(strncmp($val,"'",1) != 0 || substr($val,strlen($val)-1,1) != "'")) {
return $db->qstr($val);
break;
}
strlenを場合、それは($ val)で伝えます> 0 ...
空の文字列に引用符を追加しないのはなぜですか?
? update/saveのような他の関数では、すべて空文字列に引用符を追加します。 – missingcat92