回答
要獲得唯一的第一個值使用fetchColumn()
代替fetch()
因爲它只返回從結果的下一行一列設置
$sql = "SELECT filename FROM t_item where id=".$id;
echo $dbh->query($sql)->fetchColumn();
更好地利用bindParam
,以防止其形成sql注入
$sql = "SELECT filename FROM t_item where id= :id";
$stmt = $dbh->prepare($sql);
$stmt->bindParam(':id', $id, PDO::PARAM_INT);
$stmt->execute();
$stmt->fetchColumn();
不是我的DV,而是[Little Bobby](http://bobby-tables.com/)說[你的腳本存在SQL注入攻擊的風險。]( http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php)。即使[轉義字符串](http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string)是不安全的! –
雅阿我知道,但OP要__fetch直接的價值,而不會傳遞給$ req__,因爲提到的問題是我不建議綁定和準備聲明的原因! – Saty
您可以直接獲取並仍然準備@Saty。你懂的! –
將這些例程封裝到一個函數中,您可以隨時在腳本中的任何位置調用函數,如下所示:
<?php
function getFilename($id){
global $dbh;
$sql = "SELECT filename FROM t_item where id=".$id;
$file =$dbh->query($sql)->fetchColumn();
return $file;
}
echo getFilename(2); // ECHOES THE FILENAME FOR THE ENTITY WITH ID=2
我喜歡這個答案除了一件事情 - [Little Bobby] (http://bobby-tables.com/)說[你的腳本存在SQL注入攻擊風險。](http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-在-PHP)。即使[轉義字符串](http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string)是不安全的! –
- 1. PDO或MSSQL_connect - 在PHP 5.3中
- 2. 無法連接與PDO PHP
- 3. FFMPEG與PHP 5.3?
- 4. 與PHP PDO
- 5. PHP收益與PDO獲取?
- 6. 如何在PHP 5.3中安裝PDO?
- 7. PHP PDO使用fetchall()與直接foreach循環
- 8. 本地PHP PDO與Phalcon PDO
- 9. PHP PDO,並在第
- 10. 連接Php與sqlserver與出安裝PDO
- 11. PHP PDO提取返回一個數組?
- 12. 僅直接獲取vb.net中第一個第n個字符之後的內容
- 13. PHP/XAMPP/PDO - 本地與XAMPP與PDO庫在PHP
- 14. PHP PDO連接
- 15. 加入第三個表格,直接與第一個或通過中介
- 16. mysql_real_escape_string與PDO PHP
- 17. Sphinxql與PDO php
- 18. PHP的PDO執行()與fetch()?
- 19. 獲取直接的第一個子元素
- 20. 獲取第一個值TreeMultiMap
- 21. PHP PDO獲取和foreach - 我沒有得到第一列
- 22. 使用PHP與PDO重定向鏈接
- 23. 通過php連接到mysql與pdo
- 24. 與PDO bindParam /值
- 25. php直接變量賦值
- 26. 獲取與jQuery的唯一的直接元素值
- 27. PHP PDO接力取數據不工作
- 28. 與定製請求唯一值laravel 5.3
- 29. PDO獲取值
- 30. Laravel 5.3獲取數組值
你爲什麼不寫一個函數/方法呢? – Daan
不在PHP 5.3上。但如果你升級到PHP 5.4,你可以使用數組去引用,並執行'$ dbh-> query($ sql) - > fetch()['filename']'。雖然我同意寫一個簡單的函數是有意義的。 – jszobody
試試'echo $ req = $ dbh-> query($ sql) - > fetchColumn();' – Saty