2015-11-04 98 views
-3

我有这个脚本,由于某种原因,我得到“没有结果”。SQL/PHP没有得到任何结果

$town_city = $_POST["town_city"];  
$partner_emails = "SELECT GROUP_CONCAT(email_address SEPARATOR ', ') FROM partners WHERE '$town_city' ='yes'"; 
$connect->query($partner_emails); 
if ($result = $connect->query($partner_emails)) { 
    $row = $result->fetch_row(); 
    if(!empty($row[0])){ 
     $partner_emails = $row[0]; 
    } 
    else { 
     echo "Error: no results<br>"; 
     $partner_emails = false; 
    } 
    // CLOSE YOUR RESULTS 
    $result->close(); 
} 
else { 
    echo "Error in the connection<br>"; 
    $partner_emails = false; 
} 
@mail($partner_emails, $supplier_subject, $supplier_message, $supplier_headers); 
+0

你确认存在与该数据相匹配的querry? – 2015-11-04 22:04:55

+0

''$ town_city''是一列吗?如果是的话应该使用反引号。也打开你sql注入.. – chris85

+0

你能解释一下吗? –

回答

1

您没有得到结果,因为您的查询不正常。

$partner_emails = "SELECT GROUP_CONCAT(email_address SEPARATOR ', ') FROM partners WHERE '$town_city' ='yes'"; 

比方说,$ town_city ='ABC';

因此,最终的查询将会

$partner_emails = "SELECT GROUP_CONCAT(email_address SEPARATOR ', ') FROM partners WHERE 'ABC' ='yes'"; 

在这里,你会搞乱事情了。 'ABC'不能是column应该ABC

所以您的查询就会像

$partner_emails = "SELECT GROUP_CONCAT(email_address SEPARATOR ', ') FROM partners WHERE $town_city ='yes'"; 
//$town_city without single quotes around it 
+0

使用反引号。还有SQL注入说明... – chris85

+0

什么是回滚? –

+0

@BradHouston:'这被称为回滚,所以列名应该是'ABC' – Mubin