この PHP/MySQL の問題を解決するのに苦労しています。私のデータベースを見せて、私の状況を説明しましょう:
テーブルを作成:
CREATE TABLE IF NOT EXISTS `users` (
`id` int(50) NOT NULL AUTO_INCREMENT,
`active` varchar(20) NOT NULL,
`activation` varchar(15) NOT NULL,
`firstName` longtext NOT NULL,
`lastName` longtext NOT NULL,
`passWord` longtext NOT NULL,
`changePassword` text NOT NULL,
`emailAddress1` longtext NOT NULL,
`emailAddress2` longtext NOT NULL,
`emailAddress3` longtext NOT NULL,
`role` longtext NOT NULL,
PRIMARY KEY (`id`),
FULLTEXT KEY `name` (`firstName`,`lastName`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ;
値を挿入します。
INSERT INTO `users` (
`id` ,
`active` ,
`activation` ,
`firstName` ,
`lastName` ,
`passWord` ,
`changePassword` ,
`emailAddress1` ,
`emailAddress2` ,
`emailAddress3` ,
`role`
) VALUES (
NULL, '1000000000', 'abcdefghijklmno', 'John', 'Smith', '*24D7FB97963C40FE5C56A6672F9560FC8B681508', 'on', 'john@gmail.com', '', '', 'User'
);
値を更新します。
$affected = mysql_query(UPDATE users SET passWord = PASSWORD('a9eb42e1b3be829ef42972ea9abab334'), changePassword = 'on' WHERE emailAddress1 = 'john@gmail.com', $dbID);
if (mysql_affected_rows($affected)) {
//Never runs
}
上記のUPDATE
クエリは、私のスクリプト、phpMyAdmin、および MySQL ターミナルで問題なく実行されます。ただし、mysql_affected_rows($affected)
常に次のエラーが表示されます。
Warning: mysql_affected_rows() expects parameter 1 to be resource, boolean given
これはクエリが失敗したことを意味することはわかっていますが、データベースにアクセスするたびに、値が更新されていることがわかります。
関数からパラメーターを削除すると、問題が解決するように見えます。ただし、関数パラメーターとして識別子を使用するのは、何を参照しているのかを確認するためと、コードの保証のためです。
なぜこれがこれをしているのだろうか?
お時間をいただきありがとうございます。