2012-01-04 23 views
0

一部のデータを1つのテーブルに挿入しようとしていますが、それが成功した後、他のテーブルの1つのフィールドを更新します。私のコードは次のとおりです:異なるデータを2つのテーブルに挿入する

<?php 

$room = $_REQUEST['room']; 
$date = $_REQUEST['date']; 
$time = $_REQUEST['time']; 
$id = $_GET['meeting_id']; 

$con = mysql_connect("******","****","****"); 
if (!$con) 
    { 
    die('Could not connect: ' . mysql_error()); 
    } 

mysql_select_db('mdb_hj942', $con); 

$sql="INSERT INTO Rooms (room, date, time, meeting_id) VALUES ('$room','$date', '$time','$id')"; 
$sql2="UPDATE Meetings SET action = 'success'"; 

if (!mysql_query($sql,$con,$sql2)) 
    { 
     die('Error: ' . mysql_error()); 
    } 
    else 
    { 
     echo '<h2>Room & Time Has Now Been Updated</h2>'; 

    } 
?> 

これは可能ですか?もしそうなら、私は次のエラーメッセージを取得していて、どのような変更は、私が作るん:

'Warning: Wrong parameter count for mysql_query() in E:\webareas\hj942\conference\Secretary\bookedsuccessfully.php on line 80 
Error: ' 
+0

'UPDATE Meetings'ステートメントは、テーブル' Meetings'の** ALL **行を更新します。あなたはそれをしてもよろしいですか?おそらく '$ sql2 ="が必要です。UPDATEミーティングSETアクション= '成功' WHERE meeting_id = '$ id' "; ' –

答えて

1
if (!mysql_query($sql, $con)){ 
    die('Error: ' . mysql_error()); 
} else { 
    if (!mysql_query($sql2, $con)){ 
    die('Error: ' . mysql_error()); 
    } else { 
    echo '<h2>Room & Time Has Now Been Updated</h2>'; 
    } 
} 
+0

素晴らしいアンサー、歓声 – user1114080

0

するmysql_queryは、複数のクエリをサポートしていません。 dbアクセスを2回に分けて呼び出す必要があります。 php.netから

リソースするmysql_query(文字列$クエリ[、リソースの$ link_identifier])

するmysql_query()現在アクティブなデータベース上に独自のクエリ(複数のクエリがサポートされていない)を送ります指定されたlink_identifierに関連付けられているサーバー。

0

各クエリは個別に実行する必要があります。このようなもの

$sql="INSERT INTO Rooms (room, date, time, meeting_id) VALUES ('$room','$date', '$time','$id')"; 
if (!mysql_query($sql,$con)) 
{ 
    die('Error: ' . mysql_error()); 
} 
$sql2="UPDATE Meetings SET action = 'success'"; 

if (!mysql_query($sql2,$con)) 
{ 
    die('Error: ' . mysql_error()); 
} 

さらに先に進む前に、SQLインジェクション(「SQLインジェクション」を検索してください)についてお読みください。あなたのコードは、SQLインジェクション攻撃に対して非常に脆弱です。 PHPのPDO関数を調べて、人生を楽にすることもできます。

0

一度にするmysql_queryに2つのクエリを与えることはできません。

リソースするmysql_query(文字列$クエリ[、リソースの$ link_identifier])

mysql_query() sends a unique query (multiple queries are not supported) to the 
currently active database on the server that's associated 
with the specified link_identifier 

see here

をこれを試してください:

$sql="INSERT INTO Rooms (room, date, time, meeting_id) VALUES ('$room','$date', '$time','$id')"; 
     $sql2="UPDATE Meetings SET action = 'success'"; 
     if (mysql_query($sql,$con)) // will return true if succefull else it will return false 
      { 
       if(mysql_query($sql2, $con)){ //$sql2 succeeded 
        echo '<h2>Room & Time Has Now Been Updated</h2>'; 
       } 
      }