-1

私はこれらの2つのmysqlテーブルを持っています:

--
-- Table structure for table `body`
--

DROP TABLE IF EXISTS `body`;
CREATE TABLE IF NOT EXISTS `body` (
`bChar` bigint(10) NOT NULL,
`bPart` bigint(10) NOT NULL,
`bStr` int(3) NOT NULL,
`bDur` int(3) NOT NULL,
`bItem` bigint(10) NOT NULL,
`bHealth` int(3) NOT NULL,
`bSpd` int(3) NOT NULL,
`bMaxDur` int(3) NOT NULL,
`bCurse` int(1) NOT NULL,
`bAct` int(1) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Table structure for table `partybody`
--

DROP TABLE IF EXISTS `partybody`;
CREATE TABLE IF NOT EXISTS `partybody` (
`pabChar` bigint(10) NOT NULL,
`pabPart` bigint(10) NOT NULL,
`pabStr` int(3) NOT NULL,
`pabDur` int(3) NOT NULL,
`pabItem` int(10) NOT NULL,
`pabHealth` int(3) NOT NULL,
`pabAct` int(1) NOT NULL,
`pabNum` int(4) NOT NULL,
`pabSlot` int(1) NOT NULL,
`pabSpd` int(3) NOT NULL,
`pabMaxDur` int(3) NOT NULL,
`pabCurse` int(1) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

本文のデータは次のとおりです。

(0, 25, 0, 0, 0, 120, 0, 0, 0, 1)   

私はこのphpコードを持っています:

$query = "SELECT * FROM body WHERE bChar = ".$_SESSION['chNum'];
$result2 = mysql_query($query, $_SESSION['connect']) or die("Error 3:".mysql_error());
while($row2 = mysql_fetch_array($result2)) {
   query = "INSERT INTO partybody VALUES(".$_SESSION['chNum'].",".$row2['bPart'].",".$row2['bStr'].",".$row2['bDur'].",".$row2['bItem'].",".$row2['bHealth'].",1,1,1,".$row2['bSpd'].",".$row2['bMaxDur'].",".$row2['bCurse'].")";
  mysql_query($query, $_SESSION['connect']) or die("Error 4a:".mysql_error());
}

に追加$row2['bCurse']したばかりINSERTで、エラーメッセージをエラー4からエラー4aに変更しました。しかし、プログラムを実行すると、次のようになります。

Error 4:Column count doesn't match value count at row 1. 

キャッシュをクリアしようとしましたが、役に立ちませんでした。アイデア?

4

1 に答える 1

0

データベースにまだテスト データしか入力されていない場合は、すべてのクエリ文字列を出力して、問題があるかどうかを視覚的に確認できます。次のようなクエリ部分を探しますnumber,,number

$query = "SELECT * FROM body WHERE bChar = ".$_SESSION['chNum'];
var_dump($query);
$result2 = mysql_query($query, $_SESSION['connect']) or die("Error 3:".mysql_error());
while($row2 = mysql_fetch_array($result2)) {
   query = "INSERT INTO partybody VALUES(".$_SESSION['chNum'].",".$row2['bPart'].",".$row2['bStr'].",".$row2['bDur'].",".$row2['bItem'].",".$row2['bHealth'].",1,1,1,".$row2['bSpd'].",".$row2['bMaxDur'].",".$row2['bCurse'].")";
   var_dump($query)
   //mysql_query($query, $_SESSION['connect']) or die("Error 4a:".mysql_error());
}

queryところで、次の行のタイプミスの前にドル記号がありませんか?

query = "INSERT INTO partybody VALUES(".$_SESSION['chNum'].",".$row2['bPart'].",".$row2['bStr'].",".$row2['bDur'].",".$row2['bItem'].",".$row2['bHealth'].",1,1,1,".$row2['bSpd'].",".$row2['bMaxDur'].",".$row2['bCurse'].")";
于 2012-05-08T13:20:01.517 に答える