2017-05-09 142 views
-2

數據似乎沒有要任何語法錯誤的選擇查詢工作。然而,當我嘗試插入值時,它不會在我的表中更新。代碼中似乎沒有任何錯誤。查詢似乎在VS中工作正常。 我檢查了相同標題的帖子,並試圖應用到我的代碼迄今爲止沒有工作。這裏是我第一次遇到問題的代碼。 我的問題是我如何補救這一點,並更新我的數據庫中的表?任何幫助,將不勝感激,謝謝您的閱讀PHP INSERT查詢失敗更新表

$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)有一個看看發生了什麼事[小博表(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。‘‘'和'’’。$名字。’」,'輸入 – junkfoodjunkie

+0

@junkfoodjunkie感謝,沒有任何藉口可以不必爲我做編碼。 – Tenkin

回答

0

你缺少$StaffNUM$FirstName之間用逗號

請更改代碼的SQL查詢爲:

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

這應該工作: )

+0

嗨你的建議不幸沒有奏效,表格在每個單元格中仍然顯示爲空 – Tenkin

0

我到底圖什麼是錯的一樣,我的解決方案是硬編碼在VS其中強調錯誤的查詢。 比如我才明白,列First Name是一個貧窮的名稱由於空間並刪除了空間,使其FirstName。 我還修改了@ Thaiseer的更正,爲每個變量添加''。 最後我的表數據類型設置爲datetime允許我使用的功能GETDATE()

修改代碼

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

希望這有助於其他人誰發現自己處於類似的情況

0

圍成的領域` `也不要使用保留字作爲數據字段,

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