<?php
$serverName = "(local)"; //serverName
$connectionInfo = array("Database"=>"DabaseNew", "UID"=>"sa", "PWD"=>"*****");
$conn = sqlsrv_connect($serverName, $connectionInfo);
if($conn==true) {
echo "Connection established.<br />";
}else{
echo "Connection could not be established.<br />";
die(print_r(sqlsrv_errors(), true));
}
$sql = 'SELECT * FROM Dbo.[DATABASE COMPANY SERVICES$Employee] WHERE Email = $_GET['email']';
$stmt = sqlsrv_query($conn, $sql);
if(!$stmt){
die(print_r(sqlsrv_errors(), true));
}
$rows = sqlsrv_has_rows($stmt);
while($obj = sqlsrv_fetch_object($stmt)){
echo $obj->Last Name.", ".$obj->First Name."<br />";
}
?>
如何查詢列/列哪裏的電子郵件等於輸入的電子郵件表單submited?php MS SQL SQL查詢WHERE子句和GET參數
雙引號已經解決其間的變數 - 所以你正在做的兩次在你的榜樣。 – Daniel
他使用雙引號和連接,因爲該部分存在明顯的語法錯誤。這樣做可以防止人們犯這樣的錯誤:'$ sql ='blabla $ _GET ['email'] blabla';' $ _GET變量中的'''會破壞字符串......他必須使用串聯:'$ sql ='blabla'。 $ _GET ['email']。 'blabla''。事實上,stackoverflows的語法輪廓筆甚至可以很容易地在原文中看到 –
問題是,'$ Employee'不應該是一個變量,而應該是數據庫名稱的一部分。 (請參閱所有者的最後一個問題)所以需要使用雙引號 - 簡單地連接郵件字符串。 在沒有轉義的情況下進一步在sql查詢中使用GET參數是一個嚴重的安全問題! – Daniel