2017-05-09 28 views
-2

selectクエリが機能するので、構文エラーはないようです。ただし、値を挿入しようとすると、テーブルには更新されません。コードにエラーはないようです。クエリは正常にVSで動作しているようです。 私は同じタイトルの投稿をチェックして、私のコードに適用しようとしましたが、これまでに何もできませんでした。ここで私が最初に問題に遭遇したコードです。 私の質問は、これをどのように修正して、データベースのテーブルを更新するのですか?PHP INSERTクエリでテーブルのデータを更新できません

$SQLquery = ("INSERT INTO Location (STAFFID, First Name, Surname, Location, Time) VALUES ('$StaffNUM', '$FirstName', '$Surname', '$Location', '$Date')"); 

これは動作するはずです:任意の助けをいただければ幸い、あなたはよう

は、SQLクエリのコードを変更してください$StaffNUM$FirstNameの間にカンマが欠落している

$ServerName = 'SQL2008.net.dcs.hull.ac.uk'; 
$connectionInfo = array("Database"=>"rde_505405"); 
$conn = sqlsrv_connect($ServerName,$connectionInfo); 
if($conn== false) 
{ 
    echo 'Connection could not be established'; 
    exit('Disconnecting'); 
} 
else 
{ 
    echo 'Database located!'; 
    echo '</br>'; 
    $StaffNUM = $_POST["SID"]; 
    $FirstName = $_POST['Fname']; 
    $Surname = $_POST['Sname']; 
    $Location = $_POST['Location']; 
    $Date = date('Y-m-d h:i:sa'); 

    echo 'First Name: ', $FirstName; Echo'</br>,</br>'; 
    echo 'Surname: ', $Surname; Echo'</br>,</br>'; 
    echo 'Location: ', $Location; Echo'</br>,</br>'; 
    echo 'Entered at: ', $Date; Echo'</br>,</br>'; 

    $SQLquery = ("INSERT INTO Location (STAFFID, 'First Name', Surname, 
    Location, Time) 
    VALUES ('".$StaffNUM."''".$FirstName."', '".$Surname."', 
    '".$Location."', '".$Date."');"); 
    $results = sqlsrv_query($conn, $SQLquery); 
    echo '<br>'; 
    echo '<br>'; 
    echo 'Entry added successfully';  
    } 
sqlsrv_close($conn); 
+1

あなたのスクリプトは[ SQLインジェクション攻撃](http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php)[Little Bobby Tables](http:// bobby-tables.com/)[あなたが入力をエスケープしている場合でも、その安全ではありません!](http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string )[prepared parameterized statements](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)を使用してください。 –

+0

そのコードは恐ろしいですが、 ''"。$ StaffNUM。 "''と ''"の間にカンマがありません。$ FirstName。 "'、 ' – junkfoodjunkie

+0

@junkfoodjunkieは入力いただきありがとうございます。コーディング。 – Tenkin

答えて

0

をお読みいただきありがとうございました。 )

+0

こんにちは、残念ながらあなたの提案はうまくいきませんでしたが、テーブルはまだ各セルにNullを表示します – Tenkin

0

私は最終的に何が間違っているのか理解しました。私の解決策は、エラーをハイライト表示したVSのクエリをハードコードすることでした。 たとえば、私は、First Nameの欄が空白のために貧しい名前で、それを作るためにスペースを削除したことに気づきましたFirstName。 @タイチェアの訂正を修正して各変数に ''を加えました。 そして最後に私のテーブルのデータ型は、私は

$SQLquery = "INSERT INTO Location (STAFFID, FirstName, Surname, Location, Time) 
    VALUES ('$StaffNUM','$FirstName', '$Surname', '$Location', GETDATE())"; 

がうまくいけば、これは、似たような状況

0

で自分自身を見つける他人を助け機能GETDATE()

修正コードを使用してフィールドを囲むすることができdatetimeに設定しました `また、予約語をデータフィールドとして使用しないでください。

$SQLquery = ("INSERT INTO Location (`STAFFID`, `First Name`, `Surname`, `Location`, `Time`) 
    VALUES ('$StaffNUM', '$FirstName', '$Surname', '$Location', '$Date')"); 
関連する問題