① 在php中使用SQL語句 怎麼取出查詢出來的最後一個數據
在PHP中使用SQL語句可以通過倒序排列記錄取出第一條的記錄取到最後一條數據。
一般,php調用mysql的介面查詢,查詢語句如下:
select * from table order by id DESC limit 1
這樣就取出記錄的最後一條記錄。
② SQL(MySQL + PHP) 查詢,查詢排名,表內一個人多條數據,查出最大的那條排名,請問!
直接使用一條查詢語句就能解決了。
select * from 你的表名 order by score desc limit 3
如果只要查name score的話。則是:
select name,score from 你的表名 order by score desc limit 3
說明:order by score desc -----按score降序排序
limit 3取3條數據。
③ php怎麼獲取上一條執行的sql語句
實現思路:如果是正序的取出最後一條,那麼就是倒敘取出第一條。所以拍下序,之後取出第一條就可以了。
sql:select
top
1
username
from
tablename
order
by
username
desc
;
以上就是取出來第一條記錄,如果想取出來最後一條:sql:select
top
1
username
from
tablename
order
by
username
asc;
④ php連接mssql資料庫的幾種方式
hp連接mssql資料庫有幾個注意事項,尤其mssql的多個版本、32位、64位都有區別。
首先,php.ini文件中;extension=php_pdo_mssql.dll
;extension=php_pdo_odbc.dll
前面的分號去掉,對應的使哪種方式連接mssql。注意要重啟服務使其生效。
一、建立連接
1、odbc
首先,在php程序所在的伺服器設置odbc。這里32位和64位操作系統有區別。32位的從控制面板中管理工具中的數據源(odbc)直接建立就可以了,64位的要運行C:\Windows\SysWOW64\odbcad32.exe
從這裡面設置。注意:上面只的是資料庫伺服器為32為的,數據源設置伺服器為32位和64位兩種的情況。只要兩個伺服器建立的數據源位數一致就好。
下面是odbc建立連接代碼。
$con
=
odbc_connect('odbc名稱','用戶名','密碼');
2、連接mssql2000
$con
=
mssql_connect('資料庫地址','用戶名','密碼');
3、連接mssql2008
$connectionInfo
=
array("UID"=>用戶名,"PWD"=>核圓瞎密碼,"Database"=>"資料庫名稱");
$con
=
sqlsrv_connect(
資料庫地址,$connectionInfo);
二、輸入查詢代碼
這個都一樣,可以直接寫入,也可以從mssql中驗證好後復改空制過來。簡單點說就是把一個sql語句賦值給一個變數。
類似下面代碼
$query
=
"SELECT
top
12
*
資料庫名稱
order
by
id
desc";
三、建立查詢並取出數據
1、odbc
$result
=
odbc_do($con,$query);
while(odbc_fetch_row($result))
{
$變腔逗量名稱
=
odbc_result($result,
"欄位名稱");
}
2、連接mssql2000
$result
=
mssql_query($con,
$query);
while($row
=mssql_fetch_array($result))
{
$變數名稱
=
$row["欄位名稱"];
}
3、連接mssql2008
$result
=
sqlsrv_query($con,
$query);
while($row
=
sqlsrv_fetch_array($result))
{
$變數名稱
=
$row["欄位名稱"];
}
在php5.3及以後的版本中不附帶sqlsrv庫了。所以要從微軟這里下載。
四、關閉連接
這個沒有什麼區別,分別是odbc_close();和mssql_close()和sqlsrv_close();
⑤ PHP sql語句里的rank asc什麼意思
rank是只排序,即將要取出的數據依據哪個欄位按什麼排或慶序沒前
asc是指定列按升序排列,
desc則是指定列按降衫察握序排列
⑥ php防止sql注入漏洞有哪些函數
一個是沒有對輸入的數據進行過濾(過濾輸入),還有一個是沒有對發送到資料庫的數據進行轉義(轉義輸出)。這兩個重要的步驟缺一不可,需要同時加以特別關注以減少程序錯誤。
對於攻擊者來說,進行SQL注入攻擊需要思考和試驗,對資料庫方案進行有根有據的推理非常有必要(當然假設攻擊者看不到你的源程序和資料庫方案),考慮以下簡單的登錄表單:
<form action="/login.php" method="POST">
<p>Username: <input type="text" name="username" /></p>
<p>Password: <input type="password" name="password" /></p>
<p><input type="submit" value="Log In" /></p>
</form>
作為一個攻擊者,會從推測驗證用戶名和密碼的查詢語句開始。通過查看源文件,就能開始猜測站長的習慣。
比如命名習慣。通常會假設表單中的欄位名為與數據表中的欄位名相同。當然,確保它們不同未必是一個可靠的安全措施。
第一次猜測,一般會使用下面例子中的查詢:
<?php
$password_hash = md5($_POST['password']);
$sql = "SELECT count(*)
FROM users
WHERE username = '{$_POST['username']}'
AND password = '$password_hash'";
?>
當然,攻擊者未必在第一次就能猜中,常常還需要做一些試驗。有一個比較好的試驗方式是把單引號作為用戶名錄入,原因是這樣可能會暴露一些重要信息。有很多開發人員在Mysql語句執行出錯時會調用函數mysql_error()來報告錯誤。見下面的例子:
<?php
mysql_query($sql) or exit(mysql_error());
?>
關於SQL注入,不得不說的是現在大多虛擬主機都會把magic_quotes_gpc選項打開,在這種情況下所有的客戶端GET和POST的數據都會自動進行addslashes處理,所以此時對字元串值的SQL注入是不可行的,但要防止對數字值的SQL注入,如用intval()等函數進行處理。