のnullでgetFreeFormNumber()を呼び出すと、Keith Palmer Quickbooks PHP APIに取り組んでいました。それはすべてうまく動作し、接続します。サンプルクエリは結果を配列で返します。私がしたかったのは、結果配列を実行してmysqliテーブルにレコードを保存するmysqliのinsert文を実行することでした。致命的なエラー:C: qbapi quickbooks-php-master docs
ここで私はQuickbooksからレコードを取得し、mysqliテーブルに保存するコードです。 ?
Fatal error: Call to a member function getFreeFormNumber() on null in C:\qbapi\quickbooks-php-master\docs\
私は、顧客のクエリを実行し、コードが私のQuickBooksに保存された顧客を取得し、私のmysqliの中に保存します。
$customers = $CustomerService->query($Context, $realm, "SELECT * FROM Customer");
foreach ($customers as $Customer)
{
//First, we will retrieve the ID, and strip out any spaces/characters.
$id = $Customer->getId();
$str = preg_replace("/[^0-9]/","",$id);
//Insert customer into customer tables.
$sql = "INSERT INTO Customers (CustomerID__kp, CustomerName, CustomerAddress1, CustomerCity, CustomerCounty, CustomerPostcode, CustomerTelephone)
VALUES ('".$str."',
'".$Customer->getFullyQualifiedName()."',
'".$Customer->getBillAddr(0)->getLine1()."',
'".$Customer->getBillAddr(0)->getCity()."',
'".$Customer->getBillAddr(0)->getCountrySubDivisionCode()."',
'".$Customer->getBillAddr(0)->getPostalCode()."',
'".$Customer->getPrimaryPhone(0)->getFreeFormNumber()."'
)
ON DUPLICATE KEY
UPDATE CustomerName = '".$Customer->getFullyQualifiedName()."',
CustomerAddress1 = '".$Customer->getBillAddr(0)->getLine1()."',
CustomerCity = '".$Customer->getBillAddr(0)->getCity()."',
CustomerCounty = '".$Customer->getBillAddr(0)->getCountrySubDivisionCode()."',
CustomerPostcode = '".$Customer->getBillAddr(0)->getPostalCode()."',
CustomerTelephone = '".$Customer->getPrimaryPhone(0)->getFreeFormNumber()."'
";
$conn->query($sql);
}
>
私の質問は、私はこのエラーを取得することです。しかし何らかの理由で上記のエラーが発生します。
'$ Customer-> getPrimaryPhone(0)'が空またはNULLであるため、修正する必要があります。 –
[Little Bobby](http://bobby-tables.com/)によると*** [あなたのスクリプトはSQLインジェクション攻撃の危険にさらされています。](http://stackoverflow.com/questions/60174/how-can- i-prevent-sql-in-php)***。 [文字列をエスケープする](http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string)でも安全ではありません! –
クイックブックからレコードを取得するときに、それらのすべてに電話番号が保存されているわけではありません。だから電話番号のあるレコードがあり、そうでないレコードもある。 foreachループでは、$ Customer-> getPrimaryPhone(0)**は連絡先番号を持たないレコードではnullであるが、連絡先番号であれば機能する。私はまだレコードを保存したいが、レコードには連絡先番号があります。ありがとう。 –