0

次のコードを使用して、フォームから 2 つの異なるテーブルにデータを挿入しようとしています。

$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
  die('Could not connect: ' . mysql_error());
}

if(! get_magic_quotes_gpc() )
{
   $date = addslashes ($_POST['date']);
}
else
{
   $date = $_POST['date'];
}

$num_P1 = $_POST['num_P1'];
$num_P2 = $_POST['num_P2'];
$num_P3 = $_POST['num_P3'];
$num_P4 = $_POST['num_P4'];
$num_P5 = $_POST['num_P5'];
$num_B1 = $_POST['num_B1'];
$num_B2 = $_POST['num_B2'];
$jackpot = $_POST['jackpot'];
$jackpot2 = $_POST ['jackpot']*0.842799998;
$jp_code = $_POST['jp_code'];

$sql = "INSERT INTO euromillions ".
       "(date, P1, P2, P3, P4, P5, B1, B2, jackpot, jp_code) ".
       "VALUES('$date',$num_P1,$num_P2,$num_P3,$num_P4,$num_P5,$num_B1, $num_B2, $jackpot, $jp_code)".
       "INSERT INTO euromillions_uk ".
       "(date, P1, P2, P3, P4, P5, B1, B2, jackpot, jp_code) ".
       "VALUES('$date',$num_P1,$num_P2,$num_P3,$num_P4,$num_P5,$num_B1, $num_B2, $jackpot2, $jp_code)";

mysql_select_db('lottotools');
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
  die('Could not enter data: ' . mysql_error());
}
echo "Entered data successfully\n";
mysql_close($conn);
}
else
{
?>

次のエラー メッセージが表示されます。

データを入力できませんでした: SQL 構文にエラーがあります。1 行目の「INSERT INTO euromillions_uk (date, P1, P2, P3, P4, P5, B1, B2, jackpot, jp_code)」付近で使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。

誰かが私が間違っていることを提案してください。

ありがとうございました!

4

3 に答える 3

0

別のクエリにして実行する

$sql = "INSERT INTO euromillions 
       (date, P1, P2, P3, P4, P5, B1, B2, jackpot, jp_code) 
       VALUES('$date',$num_P1,$num_P2,$num_P3,$num_P4,$num_P5,$num_B1, $num_B2, $jackpot, $jp_code)";

$sql1 = "INSERT INTO euromillions_uk 
        (date, P1, P2, P3, P4, P5, B1, B2, jackpot, jp_code) 
        VALUES('$date',$num_P1,$num_P2,$num_P3,$num_P4,$num_P5,$num_B1, $num_B2, $jackpot2, $jp_code)";


$retval = mysql_query( $sql, $conn );
$retval1 = mysql_query( $sql1, $conn );
于 2013-09-28T14:49:18.050 に答える
0

2 つの挿入クエリを結合することはできません。2 つの挿入クエリとして別々に実行する必要があります。mysql libraries一度に 1 つのクエリのみを実行します。

于 2013-09-28T14:03:42.000 に答える
0

MySQL エラー メッセージは常に、パーサーがエラーを検出した正確な場所を示します。これは挿入エラーではなく、構文エラーです。

あなたの場合、それは2番目のステートメントの開始にあります。挿入、選択、またはその他のいずれであっても、mysql_query クエリに 2 番目のステートメントを含めることはできません。

2 つのステートメントを分離して、別々に実行する必要があります。

于 2013-09-28T14:39:07.980 に答える