2013-06-11 3 views
-1

Может ли кто-нибудь увидеть проблему с приведенным ниже кодом?PHP Mail и SQL

Заранее спасибо, Dan.

$sql = mysqli_query("SELECT * FROM tablename.all_customers WHERE Account Ref = '$accno1'"); 
$row = mysqli_fetch_array($sql); 

$Customer_Name = $row['Customer_Name']; 

$message = "Hi, $Customer_Name \n Your order has been dispatched with UK Mail, you can track it here using $conno1"; 

$message = wordwrap($message, 70, "\r\n"); 

$to = $row['email_address']; 

$headers = "From: <[email protected]>"; 
mail($to,"In Phase Test",$message,$headers); 
+3

Хм хорошо, ваш код выглядит действительно приятным человеком. Но что не работает? –

+1

не создавать имя столбца с пробелами 'Account Ref' должно быть ' Account_Ref' –

+1

1) вы предполагаете, что операции с БД были успешными. 2. Вы считаете, что почта() прошла успешно. никогда ** НИКОГДА не предполагайте успеха при работе с внешними ресурсами. Всегда проверяйте возвращаемые значения для ошибок/сбоев. –

ответ

1

Просто угадать, поскольку мы не знаем, где вы получаете сообщение об ошибке, или что ошибка есть, но попробовать, если один из этих работ:

$sql = mysqli_query("SELECT * FROM tablename.all_customers WHERE `Account Ref` = '$accno1'"); 

или

$sql = mysqli_query("SELECT * FROM tablename.all_customers WHERE Account_Ref = '$accno1'"); 

EDIT

Объяснить;

Если первый работает, вы использовали имя, содержащее пробел в качестве имени поля. Когда вы это сделаете, вы должны обернуть имя поля `.

Если второй работает, вы просто забыли символ подчёркивания в имени поля.

0

Да, у вас есть проблемы в запросе

$sql = mysqli_query("SELECT * FROM tablename.all_customers WHERE Account Ref = '$accno1'"); 

При создании таблицы базы данных, которые должны лучше, если вы поставите «_» или «-» между двумя словами в имени поля. В таблице tablename.all_customers вы используете пробел между двумя словами в поле «Account Ref». Для этого имени поля права SQL является:

$sql = mysqli_query("SELECT * FROM tablename.all_customers WHERE `Account Ref` = '$accno1'"); 

Если поставить «_» или «-» между двумя словами в полях, то без открытого и закрытого процитировать он будет работать должным образом ..

Надежда, это Вам поможет.

Thanks