2013-06-18 51 views
0

我很新,所以這裏是我的代碼。我的php變量導致一個mailchimp api錯誤

我的目標是將新人添加到mysql更新到我的mailchimp列表。我一邊學習,一邊做這一步。

如果我使用「echo」,mysql代碼將返回所需的行 當手動將值輸入代碼時,mailchimp api將更新列表。 但是,如果我把它們放在一起,我會得到一個錯誤,說','是預期的。

我的猜測是,它與變量$行[0]部分做[0]

感謝您的幫助。

<?php 
//mysql code 

mysql_connect('localhost', '****', '****') or die(mysql_error()); 
mysql_select_db('cla-constituents'); 



$result = mysql_query("SELECT per_FirstName, per_LastName, per_Email FROM person_per WHERE per_FriendDate > '2013-03-18'"); 
if (!$result) { 
    echo 'Could not run query: ' . mysql_error(); 
    exit; 
} 
$row = mysql_fetch_row($result); 

//echo $row[0]; // first name 
//echo $row[1]; // last name 
//echo $row[2]; // email 




/** 
This Example shows how to run a Batch Subscribe on a List using the MCAPI.php 
class and do some basic error checking or handle the return values. 
**/ 

require_once 'inc/MCAPI.class.php'; 
require_once 'inc/config.inc.php'; //contains apikey 

$api = new MCAPI($apikey); 
$listId = "****3"; 



$batch[] = array('EMAIL'=>$row[0], 'FNAME'=>$row[1]), 'LNAME'=>$row[2]); 
$batch[] = array('EMAIL'=>'[email protected]', 'FNAME'=>'Me2', 'LNAME'=>'Chimp2'); 

$optin = False; //yes, send optin emails 
$up_exist = true; // yes, update currently subscribed users 
$replace_int = false; // no, add interest, don't replace 

$vals = $api->listBatchSubscribe($listId,$batch,$optin, $up_exist, $replace_int); 

if ($api->errorCode){ 
    echo "Batch Subscribe failed!\n"; 
    echo "code:".$api->errorCode."\n"; 
    echo "msg :".$api->errorMessage."\n"; 
} else { 
    echo "added: ".$vals['add_count']."\n"; 
    echo "updated: ".$vals['update_count']."\n"; 
    echo "errors: ".$vals['error_count']."\n"; 
    foreach($vals['errors'] as $val){ 
     echo $val['email_address']. " failed\n"; 
     echo "code:".$val['code']."\n"; 
     echo "msg :".$val['message']."\n"; 
    }} 
?> 
+1

*必須:*本'mysql_ *'功能將被已廢棄在PHP 5.5](http://php.net/manual/en/ faq.databases.php#faq.databases.mysql.deprecated)。不建議編寫新代碼,因爲它將來會被刪除。相反,無論是[MySQLi](http://php.net/manual/en/book.mysqli.php)還是[PDO](http://php.net/manual/en/book.pdo.php)和[是一個更好的PHP開發人員](http://jason.pureconcepts.net/2012/08/better-php-developer/)。 –

+1

看起來像'$ row [1]':'$ batch [] = array('EMAIL'=> $ row [0],'FNAME'=> $ row [1]),'LNAME '=> $ row [2]);' – showdev

+0

所以我是一個總noob。我會改變,但你能告訴我使用確切的命令嗎? – wlraider70

回答

1
$batch[] = array('EMAIL'=>$row[0], 'FNAME'=>$row[1]), 'LNAME'=>$row[2]); 

更改爲:

$batch[] = array('EMAIL'=>$row[0], 'FNAME'=>$row[1], 'LNAME'=>$row[2]); 
+0

謝謝,你們怎麼看這東西。在我發現差異之前,我讀了3次。 – wlraider70

+0

隨時!有時它真的很簡單,只需要另一雙眼睛就可以看到它。不用擔心,它發生在我們身上:) – ihateartists