2012-05-08 20 views
-1

I持っているこれら二つのmysqlのテーブル:体内のPHP、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; 
ここ

あるデータ:

$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()); 
} 

:私はこのPHPコードを持って

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

私はちょうどINSERT$row2['bCurse']を追加し、私はエラー4から私のエラーメッセージを変更:エラーのため、図4(a):私は、実行時にプログラムを私はこれを得る:

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

私はキャッシュをクリアしようとしたが役に立たなかった。アイデア?データベースがまだのみテストデータが移入されている場合は

+3

クエリをエコーし​​、データベースで実行してクエリに問題がないかどうかを確認します。 –

+0

あなたは '$ query'を実際に持っていて、' query'ではなく、構文エラーであると仮定します。変更しても古いエラーが発生した場合は、新しいファイルをアップロードするのを忘れていた可能性があります。 –

+1

あなたの「パーティ体」テーブルには、上記の10列があり、あなたがあなたのクエリ(上記)を介してそれに近い12の値を挿入しようとしています。それはどのように機能しますか? – verisimilitude

答えて

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'].")"; 
+0

欠けている$はタイプミスです、それはコードで正しいです。私はINSERTの後にvar_dump($ query)を試みましたが、何もダンプしませんでした。奇妙なことは、なぜ私はそのコードをコメントアウトしたにもかかわらず、エラーメッセージは "エラー4:"と言っているのですか? –

+0

正しいスクリプト/コードを実行していることは間違いありませんか? – brezanac

+0

私ができることは確かに、私は何か言いたいことがありますか? –

関連する問題