我在所有選擇查詢使用PHP中的函數,以便我可以動態地從我的數據庫中檢索數據.....我只是想知道,這是我的代碼安全和有效,或者如果他們是一種更好的方式來做到這一點,如果是的話請點我朝着正確的方向...感謝使用mysqli來提取自定義數據
class mysql {
private $conn;
function __construct(){
$this->conn= new mysqli(DB_SERVER, DB_USER, DB_PASSWORD, DB_NAME);
if(mysqli_connect_errno())
{
trigger_error('Error connecting to host. '.$this->connections[$connection_id]->error, E_USER_ERROR);
}
}
function extracting_data($table, $fields,$condition,$order,$limit){
$query="SELECT ".$fields."
FROM ".$table."
WHERE id =".$this->sql_quote($condition)."
ORDER BY ".$order."
LIMIT ".$limit." ";
//echo $query;
if($stmt = $this->conn->prepare($query)) {
$stmt->execute();
$row = array_pad(array(), $stmt->field_count, '');
$params = array();
foreach($row as $k=>$v) {
$params[] = &$row[$k];
}
call_user_func_array(array($stmt,'bind_result'),$params);
$result = array();
while($stmt->fetch()) {
foreach ($row as $b=>$elem) {
$vals[$b]=$row[$b];
}
$result[]=$vals;
}
$stmt->close();
return $result;
}
}
function sql_quote($value)
{
if(get_magic_quotes_gpc())
{
$value = stripslashes($value);
}
//check if this function exists
if(function_exists("mysql_real_escape_string"))
{
$value = mysql_real_escape_string($value);
}
//for PHP version < 4.3.0 use addslashes
else
{
$value = addslashes($value);
}
return $value;
}
}
現在叫我使用的功能::>
$connection=New mysql();
$extract=$connection->extracting_data("tablename","id,name,points","$_GET['id']","date desc","0,10");
該函數返回$ result中的多維數組,並將其存儲在$ extract中,具體取決於我想要提取的數據。 任何改進或其他建議,將不勝感激...
是的,我打算拆開從參數的照顧,是他們的代碼,任何多餘的線條或一些不好的做法也許.... – halocursed 2009-07-15 15:37:40
將它不是隻選擇由於限制0,10而產生的10個id,或者如果我在某些查詢中不需要它,我應該刪除where子句 – halocursed 2009-07-15 15:42:24