-1
您好,我寫了下面的函數從我的數據庫中獲取的值:獲取值
function getSlCreatedate($sid) {
$query1 = "SELECT Sub_type FROM `Sub` where `Sub_id` = $sid";
$queryresult1 = mysql_query($query1);
$row1 = mysql_fetch_assoc($queryresult1);
$type1 = $row1['created_ts'];
if($type1 == 'SL') {
$query2 = "SELECT Sub_attr_value FROM `Sub_attr_list` WHERE `Sub_attr_type_id` = 20 AND `Sub_id` = $sid";
$queryresult2 = mysql_query($query2);
$row2 = mysql_fetch_assoc($queryresult2);
$type2 = $row2['Sub_attr_value'];
if($type2 == " "){
$query3 = "SELECT Created_ts FROM `Sub` WHERE `Sub_id`= $sid";
$queryresult3 = mysql_query($query3);
$row3 = mysql_fetch_assoc($queryresult3);
return $row3['Created_ts'];
}
else {
return $type2['Sub_attr_value'];
}
}
else
return 0;
}
有什麼條件,我需要先檢查Sub_type在數據庫中對於給定的「SID」值,如果返回「SL」作爲結果,那麼我需要從「Sub_attr_list」表中獲取「Sub_attr_value」,如果此值返回空行或值NULL,那麼我必須將該sid的「Created_ts」值返回給頁,這裏所有的查詢工作正常,當我執行我的PHP MyAdmin分開,任何人都可以指導我完成這一點,我無法從這裏獲得值到頁面。
在我的頁面的函數調用如下:
$sldate = db_func::getSlCreatedate($sub_list[$i]['Sub_id']);
幸好它沒有顯示任何錯誤,也沒有表現出預期的結果。
不要通過將字符串混合在一起來構建SQL。不要使用'mysql_query',在[該函數的手冊頁](http://php.net/mysql_query)上有一個大紅色警告的原因。 – Quentin
看起來像你可以將所有3合併到一個查詢中,只需一次連接 – 2012-09-01 10:56:39
如果要保持原樣,那麼您的代碼很容易被注入,請閱讀有關SQL注入的更多信息:http://stackoverflow.com/問題/ 11939226/sql-injections-and-adodb-library-general-php-website-security-with-examples –