0

次の INSERT ステートメントで、フォームからデータベースにデータを挿入する際に小さな問題があります。

        if (isset($_REQUEST['Submit'])) { 
        // Code to insert note into field;
        $sql = "INSERT INTO fields (notes) VALUES   
        ('".mysql_real_escape_string(stripslashes($_REQUEST['note']))."') 
        WHERE companyId='".$companyid['id']."' AND fileNumber ='".$filename."'";

        if($result = mysql_query($sql)) { 
        echo "<h1>Thank you</h1>Your information has been entered into our database<br><br>";
        } else { 
        echo "ERROR: ".mysql_error(); 
        } 
        } else { 

次のエラー メッセージが生成されます。

        ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE companyId='11' AND fileNumber =''' at line 1

まず第一に、$filename 変数が明らかに表示されません。$companyid[id] 変数をフィールドにコピーすると、変数の内容が正しく表示されますが、それでも構文エラーが発生します。

私は PHP SQL 初心者で、独学で学んでいるので、私に優しくしてください :)

Heres 完全なコードからフォームを除いたもの

      <?php 
include "header.php";
$checkFiles = "checkFiles.php";
// Catches form input from previous page and stores it into session variable called filename for future reference;
$_SESSION['filename']=$_POST['filename'];
$filename = $_SESSION['filename'];
//User id stuff from previous page too; 
$userid = $_SESSION['userid'];
$id = mysql_query("SELECT id FROM users WHERE DXNumber='".$userid."'");
// Returns pointer so fetch it as an array and insert it into variable $companyid for later use;
$companyid = mysql_fetch_array($id);

if (isset($_REQUEST['Submit'])) { 
// Code to insert note into field;
$sql = "INSERT INTO fields (notes) VALUES ('".mysql_real_escape_string(stripslashes($_REQUEST['note']))."') 
        WHERE companyId='".$companyid['id']."' AND fileNumber ='".$filename."'";
    if($result = mysql_query($sql)) { 
        echo "<h1>Thank you</h1>Your information has been entered into our database<br><br>";
        } else { 
        echo "ERROR: ".mysql_error(); 
        } 
        } else { 
        ?>
4

1 に答える 1

2

INSERT INTOWHEREステートメントには節がありません。

それはあるべきでINSERT INTO <table> (field1, field2, field3) VALUES (value1, value2, value3) あり、そうではないINSERT INTO <table> (field1) VALUES (value1) WHERE field2 = value2などです。

http://dev.mysql.com/doc/refman/5.5/en/insert.htmlを参照してください。

于 2013-01-16T15:38:08.893 に答える