2011-02-03 18 views
0

私はupcデータベースからデータを取得し、自分のデータベースにデータを挿入したいのですが、すべてのコードは正しいですが、データベースをチェックするとデータベーステーブルにレコードがありませんデータ挿入の問題

if(!$resp->faultCode()) 
    { 
     //Store the value of the response in a variable 
     $val = $resp->value(); 
     //Decode the value, into an array. 
     $data = XML_RPC_decode($val); 
     //Optionally print the array to the screen to inspect the values 
       echo $upc=$data['upc']; 
       echo $ean=$data['ean']; 
       echo $description=$data['description']; 
       echo $size=$data['size']; 
       $query1="INSERT INTO upc(upc,ean,description,size) values('$upc','$ean','$description','$size')"; 
       var_dump($query1); 
       $result1=mysql_query($query1); 
私はすべての変数をエコーし​​、結果はこのように表示されます
639382000393 
0639382000393 
The Teenager's Guide to the Real World by BYG Publishing 
book 
string(166) "INSERT INTO upc(upc,ean,description,size) values('639382000393 
','0639382000393 
','The Teenager's Guide to the Real World by BYG Publishing 
','book 
')" You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 's Guide to the Real World by BYG Publishing 
','book 
')' at line 1
データはテーブルに挿入されません

+0

mysql_queryは何を返しますか? 'true'または' false'? 'mysql_query'が' false'を返す場合、いつも 'mysql_error'でエラーメッセージを受け取ることができます – PatrikAkerstrand

+0

私の質問をエラー – hunter

+0

で更新します。質問のエラー結果を確認してください。 – Grumpy

答えて

2

データは'文字と、代わりにバインドされた変数を使用してのを含ん」、あなたは自分のクエリを作成するために一緒に文字列をマッシュアップしています。文字列を区切るのに'を使用するので、SQLは中断します。これはまた、SQLインジェクション攻撃に対して脆弱であることを意味します。

bound variablesを使用してください。

+0

hello sirは動作しています。 jsonでは '$ json = array(); echo $ json [] = $ data; 'しかし、何もページに表示されません – hunter

1

確かに動作しません。文字列に一重引用符があります。文字列を逃げれば、あなたは大丈夫でしょう。

BYG公開することにより、文字列(166)「(UPC、EAN、説明、サイズ)の値( '639382000393
'、 '0639382000393
' UPC。INSERT INTO、「ティーンエイジャーの実世界へのガイド
「」ブック
「)