Возможный дубликат:
mysql_fetch_array () ожидает, что параметр 1 будет ресурсом, boolean задан в select
if (!empty($_POST)){ $email_to=$_POST['email_to']; $email_to=mysql_real_escape_string($_POST['email_to']); $sql = "UPDATE `cosmos`.`members` SET `conf` = '2' WHERE `members`.`email` = '$email_to';"; $result=mysql_query($sql) or trigger_error(mysql_error().$sql); $count=mysql_affected_rows($result); // line 20 if($count==1){ $rows=mysql_fetch_array($result); $unique=$rows['u_code']; $name=$rows['username']; // ---------------- SEND MAIL FORM ---------------- $to=$email_to; $subject="Your Account Password Request! - Cosmos"; $header="from: Tayal's/Cosmos <cosmos@gmail.com>"; $messages= "Hey $name ,\r\n"; $messages.="You recently requested a new password"; $messages.="<br /><a href='confirm.php?uid" . $unique . "'>Confirmation Link</a> \r\n"; $sentmail = mail($to,$subject,$messages,$header); echo $messages; } else { echo "Not found your email in our database"; } }
Предупреждение: mysql_affected_rows () ожидает, что параметр 1 будет ресурсом, boolean задан в C: \ wamp \ www \ a \ l \ forget.php в строке 20
$result=mysql_query($sql);
в
$result=mysql_query($sql) or trigger_error(mysql_error().$sql);
и снова запустите его
а потом
$email_to=$_POST['email_to'];
в
$email_to=mysql_real_escape_string($_POST['email_to']);
о да, и есть также цитаты
$result
– false
потому что ваш запрос недействителен (имеет синтаксическую ошибку). Использование:
$sql = "UPDATE members SET conf=2 WHERE email = '$email_to';"
(обратите внимание на цитаты, связанные с $email_to
)
Кроме того, mysql_num_rows()
следует использовать только для запросов SELECT
. Для UPDATE
, INSERT
и DELETE
вместо этого используйте mysql_affected_rows()
.
Наконец, для дальнейшего использования, если ваш запрос не работает, напечатайте ошибку и используемый SQL-запрос (что-то вроде ответа Col Shrapnel). Это поможет вам понять, что случилось.
SQL, который вы выполнили, не был SELECT, поэтому строки не возвращаются!