eBayからxmlデータを取得し、その結果をMySQLに入れる作業をしていますが、データの取得は正常に機能しますが、いくつかのxmlタグ値の整数値が正しくないため、データベースへの入力は失敗します。
xmlタグの値は「true」(引用符なし)という単語であり、これはdbsqlです。
CREATE TABLE ebay_categories (
CategoryID int(10) NOT NULL default '0',
CategoryLevel int(5) NOT NULL default '0',
CategoryName varchar(120) NOT NULL default '',
CategoryParentID int(10) NOT NULL default '0',
LeafCategory int(1) NOT NULL default '0',
AutoPayEnabled int(1) NOT NULL default '0',
Expired int(1) NOT NULL default '0',
IntlAutosFixedCat int(1) NOT NULL default '0',
Virtual int(1) NOT NULL default '0',
LSD int(1) NOT NULL default '0',
ORPA int(1) NOT NULL default '0',
PRIMARY KEY (CategoryID),
KEY catlevel (CategoryLevel),
KEY parent (CategoryParentID),
KEY ape (AutoPayEnabled),
KEY expired (Expired),
KEY IAFC (IntlAutosFixedCat),
KEY virtual (Virtual),
KEY lsd (LSD),
KEY orpa (ORPA),
KEY leaf (LeafCategory)
) TYPE=MyISAM;
私はint、tinyint、Boolean(tinyintに頼る)を無駄に試しましたが、それでもこの問題が発生します。LeafCategoryなどのint型としてvarcharを使用してテストを実行し、すべてが正常に機能したため、db接続に問題はありません。
db挿入の前に正規表現を介して検索および置換することなくできることがありますか?
編集:
$query = "INSERT INTO `ebay_categories` (`CategoryID`, `LeafCategory`)VALUES ('$xmlCategoryID', '$xmlLeafCategory')";
if (mysqli_query($link, $query)) {
echo "Successfully inserted " . mysqli_affected_rows($link) . " row";
} else {
echo "Error occurred: " . mysqli_error($link);
}
クライアントコードからアンラップされたSQLステートメントは次のとおりです。
INSERT INTO `ebay_categories`
(`CategoryID`, `LeafCategory`)
VALUES
('$xmlCategoryID', '$xmlLeafCategory')";