diff --git a/include/QueryGenerator/QueryGenerator.php b/include/QueryGenerator/QueryGenerator.php
index d5a21f9e2dd1f2656783644ba6b79951c4c7bca1..bafbd821a7433f68c9553be0eb0f551593b9ae1c 100644
--- a/include/QueryGenerator/QueryGenerator.php
+++ b/include/QueryGenerator/QueryGenerator.php
@@ -1418,19 +1418,19 @@ class QueryGenerator {
 
 	public function getDashBoardConditionList() {
 		if(isset($_REQUEST['leadsource'])) {
-			$leadSource = $_REQUEST['leadsource'];
+			$leadSource = vtlib_purify($_REQUEST['leadsource']);
 		}
 		if(isset($_REQUEST['date_closed'])) {
-			$dateClosed = $_REQUEST['date_closed'];
+			$dateClosed = vtlib_purify($_REQUEST['date_closed']);
 		}
 		if(isset($_REQUEST['sales_stage'])) {
-			$salesStage = $_REQUEST['sales_stage'];
+			$salesStage = vtlib_purify($_REQUEST['sales_stage']);
 		}
 		if(isset($_REQUEST['closingdate_start'])) {
-			$dateClosedStart = $_REQUEST['closingdate_start'];
+			$dateClosedStart = vtlib_purify($_REQUEST['closingdate_start']);
 		}
 		if(isset($_REQUEST['closingdate_end'])) {
-			$dateClosedEnd = $_REQUEST['closingdate_end'];
+			$dateClosedEnd = vtlib_purify($_REQUEST['closingdate_end']);
 		}
 		if(isset($_REQUEST['owner'])) {
 			$owner = vtlib_purify($_REQUEST['owner']);
diff --git a/include/utils/ExportUtils.php b/include/utils/ExportUtils.php
index bb412bf21c7b1ae1a57a179355639b6641d318ae..0cf16816df693aff9c06351f38967db732027445 100644
--- a/include/utils/ExportUtils.php
+++ b/include/utils/ExportUtils.php
@@ -80,7 +80,7 @@ function getFieldsListFromQuery($query)
 	global $adb, $log;
 	$log->debug("Entering into the function getFieldsListFromQuery($query)");
 
-	$result = $adb->query($query);
+	$result = $adb->pquery($query, array());
 	$num_rows = $adb->num_rows($result);
 
 	for($i=0; $i < $num_rows;$i++)
diff --git a/include/utils/InventoryUtils.php b/include/utils/InventoryUtils.php
index 2aa41675d062b4644609b9f5ccb73b2061217cf6..1388f65b082eda25302cb7b286fa2e5fa325ee5a 100644
--- a/include/utils/InventoryUtils.php
+++ b/include/utils/InventoryUtils.php
@@ -1312,9 +1312,10 @@ function createRecords($obj) {
 	$moduleFields = $moduleMeta->getModuleFields();
 	$focus = CRMEntity::getInstance($moduleName);
 
-	$tableName = Import_Utils_Helper::getDbTableName($obj->user);
-	$sql = 'SELECT * FROM ' . $tableName . ' WHERE status = '. Import_Data_Action::$IMPORT_RECORD_NONE .' GROUP BY subject';
-
+    $params = array();
+	$tableName = Vtiger_Util_Helper::validateStringForSql(Import_Utils_Helper::getDbTableName($obj->user));
+	$sql = 'SELECT * FROM ' . $tableName . ' WHERE status = ? GROUP BY subject';
+    $params[] = Import_Data_Action::$IMPORT_RECORD_NONE;
 	if($obj->batchImport) {
 		$importBatchLimit = getImportBatchLimit();
 		$sql .= ' LIMIT '. $importBatchLimit;
@@ -1323,7 +1324,7 @@ function createRecords($obj) {
 		$pagingLimit = $configReader->get('importPagingLimit');
 		$sql .= ' LIMIT '.$pagingLimit;
 	}
-	$result = $adb->query($sql);
+	$result = $adb->pquery($sql, $params);
 	$numberOfRecords = $adb->num_rows($result);
 
 	if ($numberOfRecords <= 0) {
@@ -1343,8 +1344,10 @@ function createRecords($obj) {
 		$subject = $row['subject'];
 		$subject = str_replace("\\", "\\\\", $subject);
 		$subject = str_replace('"', '""', $subject);
-		$sql = "SELECT * FROM $tableName WHERE status = ".Import_Data_Action::$IMPORT_RECORD_NONE." AND subject = '$subject'";
-		$subjectResult = $adb->query($sql);
+		$sql = "SELECT * FROM $tableName WHERE status = ? AND subject = ?";
+        $params = array();
+        array_push($params, Import_Data_Action::$IMPORT_RECORD_NONE, $subject);
+		$subjectResult = $adb->pquery($sql, $params);
 		$count = $adb->num_rows($subjectResult);
 		$subjectRowIDs = array();
 		for ($j = 0; $j < $count; ++$j) {
@@ -1519,8 +1522,8 @@ function importRecord($obj, $inventoryFieldData, $lineItemDetails) {
 
 function getImportStatusCount($obj) {
 	global $adb;
-	$tableName = Import_Utils_Helper::getDbTableName($obj->user);
-	$result = $adb->query('SELECT status FROM '.$tableName. ' GROUP BY subject');
+	$tableName = Vtiger_Util_Helper::validateStringForSql(Import_Utils_Helper::getDbTableName($obj->user));
+	$result = $adb->pquery('SELECT status FROM '.$tableName. ' GROUP BY subject', array());
 
 	$statusCount = array('TOTAL' => 0, 'IMPORTED' => 0, 'FAILED' => 0, 'PENDING' => 0,
 			'CREATED' => 0, 'SKIPPED' => 0, 'UPDATED' => 0, 'MERGED' => 0);
@@ -1562,15 +1565,14 @@ function undoLastImport($obj, $user) {
 	$owner->id = $ownerId;
 	$owner->retrieve_entity_info($ownerId, 'Users');
 	
-	$dbTableName = Import_Utils_Helper::getDbTableName($owner);
+	$dbTableName = Vtiger_Util_Helper::validateStringForSql(Import_Utils_Helper::getDbTableName($owner));
 	
 	if(!is_admin($user) && $user->id != $owner->id) {
 		$viewer = new Vtiger_Viewer();
 		$viewer->view('OperationNotPermitted.tpl', 'Vtiger');
 		exit;
 	}
-	$result = $adb->query("SELECT recordid FROM $dbTableName WHERE status = ". Import_Data_Controller::$IMPORT_RECORD_CREATED
-			." AND recordid IS NOT NULL GROUP BY subject");
+	$result = $adb->pquery("SELECT recordid FROM $dbTableName WHERE status = ? AND recordid IS NOT NULL GROUP BY subject", array(Import_Data_Controller::$IMPORT_RECORD_CREATED));
 	$noOfRecords = $adb->num_rows($result);
 	$noOfRecordsDeleted = 0;
 	for($i=0; $i<$noOfRecords; ++$i) {
diff --git a/include/utils/UserInfoUtil.php b/include/utils/UserInfoUtil.php
index f782f7591b3872563ffd9a158f27ef90618d476f..5d34fccba6174a6c28edee9b0dc22c0b5c42a2c8 100755
--- a/include/utils/UserInfoUtil.php
+++ b/include/utils/UserInfoUtil.php
@@ -2225,9 +2225,9 @@ function getSharingModuleList($eliminateModules=false)
 	if(!in_array('Events', $eliminateModules)) $eliminateModules[] = 'Events';
 
 	$query = "SELECT name FROM vtiger_tab WHERE presence=0 AND ownedby = 0 AND isentitytype = 1";
-	$query .= " AND name NOT IN('" . implode("','", $eliminateModules) . "')";
+	$query .= " AND name NOT IN(" . generateQuestionMarks($eliminateModules) . ")";
 
-	$result = $adb->query($query);
+	$result = $adb->pquery($query, $eliminateModules);
 	while($resrow = $adb->fetch_array($result)) {
 		$sharingModuleArray[] = $resrow['name'];
 	}
diff --git a/include/utils/VtlibUtils.php b/include/utils/VtlibUtils.php
index 51b35ba0e2341e08956629c2ba7d40b93f9fb4ba..dbf16efb05ff2c524bf4a9bab6c980d7e07767ea 100644
--- a/include/utils/VtlibUtils.php
+++ b/include/utils/VtlibUtils.php
@@ -122,7 +122,7 @@ function vtlib_isModuleActive($module) {
  */
 function vtlib_RecreateUserPrivilegeFiles() {
 	global $adb;
-	$userres = $adb->query('SELECT id FROM vtiger_users WHERE deleted = 0');
+	$userres = $adb->pquery('SELECT id FROM vtiger_users WHERE deleted = 0', array());
 	if($userres && $adb->num_rows($userres)) {
 		while($userrow = $adb->fetch_array($userres)) {
 			createUserPrivilegesfile($userrow['id']);
@@ -194,7 +194,7 @@ function vtlib_getToggleModuleInfo() {
 
 	$modinfo = Array();
 
-	$sqlresult = $adb->query("SELECT name, presence, customized, isentitytype FROM vtiger_tab WHERE name NOT IN ('Users','Home') AND presence IN (0,1) ORDER BY name");
+	$sqlresult = $adb->pquery("SELECT name, presence, customized, isentitytype FROM vtiger_tab WHERE name NOT IN ('Users','Home') AND presence IN (0,1) ORDER BY name", array());
 	$num_rows  = $adb->num_rows($sqlresult);
 	for($idx = 0; $idx < $num_rows; ++$idx) {
 		$module = $adb->query_result($sqlresult, $idx, 'name');
@@ -219,7 +219,7 @@ function vtlib_getToggleLanguageInfo() {
 	$adb->dieOnError = false;
 
 	$langinfo = Array();
-	$sqlresult = $adb->query("SELECT * FROM vtiger_language");
+	$sqlresult = $adb->pquery("SELECT * FROM vtiger_language", array());
 	if($sqlresult) {
 		for($idx = 0; $idx < $adb->num_rows($sqlresult); ++$idx) {
 			$row = $adb->fetch_array($sqlresult);
@@ -532,7 +532,7 @@ function vtlib_getPicklistValues_AccessibleToAll($field_columnname) {
 	$tablename = "vtiger_$columnname";
 
 	// Gather all the roles (except H1 which is organization role)
-	$roleres = $adb->query("SELECT roleid FROM vtiger_role WHERE roleid != 'H1'");
+	$roleres = $adb->pquery("SELECT roleid FROM vtiger_role WHERE roleid != 'H1'", array());
 	$roleresCount= $adb->num_rows($roleres);
 	$allroles = Array();
 	if($roleresCount) {
@@ -542,10 +542,10 @@ function vtlib_getPicklistValues_AccessibleToAll($field_columnname) {
 	sort($allroles);
 
 	// Get all the picklist values associated to roles (except H1 - organization role).
-	$picklistres = $adb->query(
+	$picklistres = $adb->pquery(
 		"SELECT $columnname as pickvalue, roleid FROM $tablename
 		INNER JOIN vtiger_role2picklist ON $tablename.picklist_valueid=vtiger_role2picklist.picklistvalueid
-		WHERE roleid != 'H1'");
+		WHERE roleid != 'H1'", array());
 
 	$picklistresCount = $adb->num_rows($picklistres);
 
@@ -578,7 +578,7 @@ function vtlib_getPicklistValues($field_columnname) {
 		$columnname =  $adb->sql_escape_string($field_columnname);
 		$tablename = "vtiger_$columnname";
 
-		$picklistres = $adb->query("SELECT $columnname as pickvalue FROM $tablename");
+		$picklistres = $adb->pquery("SELECT $columnname as pickvalue FROM $tablename", array());
 
 		$picklistresCount = $adb->num_rows($picklistres);
 
diff --git a/include/utils/utils.php b/include/utils/utils.php
index 965910a3f85cb8906a7571806ac87490a44d11d9..fc250c377a47f30faf3464479efdc9ba750ccc0b 100755
--- a/include/utils/utils.php
+++ b/include/utils/utils.php
@@ -1230,7 +1230,7 @@ function getAccessPickListValues($module)
 	$temp_status = Array();
 	for($i=0;$i < $adb->num_rows($result);$i++)
 {
-		$fieldname = $adb->query_result($result,$i,"fieldname");
+		$fieldname = Vtiger_Util_Helper::validateStringForSql($adb->query_result($result,$i,"fieldname"));
 		$fieldlabel = $adb->query_result($result,$i,"fieldlabel");
 		$columnname = $adb->query_result($result,$i,"columnname");
 		$tabid = $adb->query_result($result,$i,"tabid");
@@ -1247,7 +1247,7 @@ function getAccessPickListValues($module)
 			$mulsel="select distinct $fieldname from vtiger_$fieldname inner join vtiger_role2picklist on vtiger_role2picklist.picklistvalueid = vtiger_$fieldname.picklist_valueid where roleid ='".$roleid."' and picklistid in (select picklistid from vtiger_$fieldname) order by sortid asc";
 	}
 		if($fieldname != 'firstname')
-			$mulselresult = $adb->query($mulsel);
+			$mulselresult = $adb->pquery($mulsel, array());
 		for($j=0;$j < $adb->num_rows($mulselresult);$j++)
 		{
 			$fieldvalues[] = $adb->query_result($mulselresult,$j,$fieldname);
@@ -1755,7 +1755,7 @@ function com_vtGetModules($adb) {
 		inner join vtiger_tab
 			on vtiger_field.tabid=vtiger_tab.tabid
 		where vtiger_field.tabid not in(9,10,16,15,29) and vtiger_tab.presence = 0 and vtiger_tab.isentitytype=1";
-	$it = new SqlResultIterator($adb, $adb->query($sql));
+	$it = new SqlResultIterator($adb, $adb->pquery($sql, array()));
 	$modules = array();
 	foreach($it as $row) {
 		if(isPermitted($row->name,'index') == "yes") {
diff --git a/modules/Accounts/models/Module.php b/modules/Accounts/models/Module.php
index 82e31bcd5fde52aa825c50092f50cd521c7efaee..874073fcc08c70a72245f48483f378471f0cc2af 100644
--- a/modules/Accounts/models/Module.php
+++ b/modules/Accounts/models/Module.php
@@ -157,7 +157,6 @@ class Accounts_Module_Model extends Vtiger_Module_Model {
 		$focus = CRMEntity::getInstance($this->getName());
 		$focus->id = $recordId;
 		$entityIds = $focus->getRelatedContactsIds();
-		$entityIds = implode(',', $entityIds);
         $params = array();
 
 		$query = "SELECT DISTINCT vtiger_crmentity.crmid, (CASE WHEN (crmentity2.crmid not like '') THEN crmentity2.crmid ELSE crmentity3.crmid END) AS parent_id, 
@@ -199,7 +198,7 @@ class Accounts_Module_Model extends Vtiger_Module_Model {
 			array_push($params, $recordId);
 			if ($entityIds) {
 				$query .= " OR vtiger_cntactivityrel.contactid IN (" . generateQuestionMarks($entityIds) . "))";
-                array_push($params, $entityIds);
+                $params = array_merge($params, $entityIds);
 			} else {
 				$query .= ")";
 			}
diff --git a/modules/Calendar/Activity.php b/modules/Calendar/Activity.php
index 77f4cb79a186500949ebfc3bae241f77b97a565f..5b8bb355f68c9da391ba670b769c3b125bc06074 100644
--- a/modules/Calendar/Activity.php
+++ b/modules/Calendar/Activity.php
@@ -579,7 +579,7 @@ function insertIntoRecurringTable(& $recurObj)
 				left join vtiger_contactdetails on vtiger_contactdetails.contactid= vtiger_cntactivityrel.contactid
 				left join vtiger_seactivityrel on vtiger_seactivityrel.activityid = vtiger_activity.activityid
 				WHERE vtiger_crmentity.deleted=0 ".$criteria;
-		$result =& $this->db->query($query);
+		$result =& $this->db->pquery($query, array());
 
 	if($this->db->getRowCount($result) > 0){
 	  // We have some data.
@@ -675,7 +675,7 @@ function insertIntoRecurringTable(& $recurObj)
 	{
 		global $log;
 			$log->debug("Entering process_list_query1(".$query.") method ...");
-		$result =& $this->db->query($query,true,"Error retrieving $this->object_name list: ");
+		$result =& $this->db->pquery($query,array(),true,"Error retrieving $this->object_name list: ");
 		$list = Array();
 		$rows_found =  $this->db->getRowCount($result);
 		if($rows_found != 0)
@@ -1165,6 +1165,8 @@ function insertIntoRecurringTable(& $recurObj)
 			$tabId = getTabid("Calendar");
 			$eventTempTable = 'vt_tmp_u'.$userModel->id.'_t'.$tabId.'_events'.$scope;
 			$taskTempTable = 'vt_tmp_u'.$userModel->id.'_t'.$tabId.'_task'.$scope;
+            $eventTempTable = Vtiger_Util_Helper::validateStringForSql($eventTempTable);
+            $taskTempTable = Vtiger_Util_Helper::validateStringForSql($taskTempTable);
 			$query = " ($eventTempTable.shared IS NOT NULL OR $taskTempTable.shared IS NOT NULL) ";
 		}
 		return $query;
diff --git a/modules/Calendar/iCalExport.php b/modules/Calendar/iCalExport.php
index 41c79c9f2e9b3ca9648691110a0881de519c5b76..47eb1c9d10a3d4d3641e165fd0e4539450478588 100644
--- a/modules/Calendar/iCalExport.php
+++ b/modules/Calendar/iCalExport.php
@@ -16,10 +16,10 @@ global $current_user,$adb,$default_timezone;
 $filename = $_REQUEST['filename'];
 $ical_query = "select vtiger_activity.*,vtiger_crmentity.description,vtiger_activity_reminder.reminder_time from vtiger_activity inner join vtiger_crmentity on vtiger_activity.activityid = vtiger_crmentity.crmid " .
 	" LEFT JOIN vtiger_activity_reminder ON vtiger_activity_reminder.activity_id=vtiger_activity.activityid AND vtiger_activity_reminder.recurringid=0" .
-	" where vtiger_crmentity.deleted = 0 and vtiger_crmentity.smownerid = " . $current_user->id . 
+	" where vtiger_crmentity.deleted = 0 and vtiger_crmentity.smownerid = ?" . 
 	" and vtiger_activity.activitytype NOT IN ('Emails')";
 
-$calendar_results = $adb->query($ical_query);
+$calendar_results = $adb->pquery($ical_query, array($current_user->id));
 
 // Send the right content type and filename
 header ("Content-type: text/calendar");
diff --git a/modules/Campaigns/Campaigns.php b/modules/Campaigns/Campaigns.php
index cc99d855fdbe03ec6a22a15fe0e655dc9634972b..93fa0c1a0161c44dc97b21fe40877f429880a8ed 100644
--- a/modules/Campaigns/Campaigns.php
+++ b/modules/Campaigns/Campaigns.php
@@ -535,7 +535,7 @@ class Campaigns extends CRMEntity {
 
 		if(!$this->campaignrelstatus)
 		{
-			$result = $adb->query('SELECT * FROM vtiger_campaignrelstatus;');
+			$result = $adb->pquery('SELECT * FROM vtiger_campaignrelstatus;', array());
 			while($row = $adb->fetchByAssoc($result))
 			{
 				$this->campaignrelstatus[$row['campaignrelstatus']] = $row;
diff --git a/modules/Campaigns/models/Record.php b/modules/Campaigns/models/Record.php
index 718d22e990be2cc265d859c35370ee4ef0a2cca5..fd743e673ded2bae377daa8bedbf87d0fe9301fb 100644
--- a/modules/Campaigns/models/Record.php
+++ b/modules/Campaigns/models/Record.php
@@ -28,11 +28,13 @@ class Campaigns_Record_Model extends Vtiger_Record_Model {
 		$query = "SELECT $fieldName FROM $tableName
 					INNER JOIN vtiger_crmentity ON $tableName.$fieldName = vtiger_crmentity.crmid AND vtiger_crmentity.deleted = ?
 					WHERE campaignid = ?";
+        $params = array(0, $this->getId());
 		if ($excludedIds) {
-			$query .= " AND $fieldName NOT IN (". implode(',', $excludedIds) .")";
+			$query .= " AND $fieldName NOT IN (". generateQuestionMarks($excludedIds) .")";
+            $params = array_merge($params, $excludedIds);
 		}
 
-		$result = $db->pquery($query, array(0, $this->getId()));
+		$result = $db->pquery($query, $params);
 		$numOfRows = $db->num_rows($result);
 
 		$selectedIdsList = array();
diff --git a/modules/Contacts/Contacts.php b/modules/Contacts/Contacts.php
index 2e33d8b7a454478ec00962d35a10b1d1053ec84c..1a53e84d561d641057f1c4c9d955ca7c6b503d5e 100644
--- a/modules/Contacts/Contacts.php
+++ b/modules/Contacts/Contacts.php
@@ -197,7 +197,7 @@ class Contacts extends CRMEntity {
 	global $log;
 	$log->debug("Entering process_list_query1(".$query.") method ...");
 
-        $result =& $this->db->query($query,true,"Error retrieving $this->object_name list: ");
+        $result =& $this->db->pquery($query,array(),true,"Error retrieving $this->object_name list: ");
         $list = Array();
         $rows_found =  $this->db->getRowCount($result);
         if($rows_found != 0)
@@ -266,7 +266,7 @@ class Contacts extends CRMEntity {
               $permitted_field_lists[] = $adb->query_result($result1,$i,'columnname');
           }
 
-          $result =& $this->db->query($query,true,"Error retrieving $this->object_name list: ");
+          $result =& $this->db->pquery($query,array(),true,"Error retrieving $this->object_name list: ");
           $list = Array();
           $rows_found =  $this->db->getRowCount($result);
           if($rows_found != 0)
diff --git a/modules/Contacts/models/Module.php b/modules/Contacts/models/Module.php
index c2a6ad66a1851088acdf197f6fd2c7022289ea85..d32a90070f22b0a3d6bf693733a13c8f5f2531e5 100644
--- a/modules/Contacts/models/Module.php
+++ b/modules/Contacts/models/Module.php
@@ -160,69 +160,87 @@ class Contacts_Module_Model extends Vtiger_Module_Model {
 	 * @return <String> - query
 	 */
 	function getSearchRecordsQuery($searchValue, $searchFields, $parentId=false, $parentModule=false) {
-		if($parentId && $parentModule == 'Accounts') {
+        $db = PearDatabase::getInstance();
+        if($parentId && $parentModule == 'Accounts') {
 			$query = "SELECT ".implode(',',$searchFields)." FROM vtiger_crmentity
 						INNER JOIN vtiger_contactdetails ON vtiger_contactdetails.contactid = vtiger_crmentity.crmid
-						WHERE deleted = 0 AND vtiger_contactdetails.accountid = $parentId AND label like '%$searchValue%'";
-			return $query;
+						WHERE deleted = 0 AND vtiger_contactdetails.accountid = ? AND label like ?";
+            $params = array($parentId, "%$searchValue%");
+            $returnQuery = $db->convert2Sql($query, $params);
+			return $returnQuery;
 		} else if($parentId && $parentModule == 'Potentials') {
 			$query = "SELECT ".implode(',',$searchFields)." FROM vtiger_crmentity
 						INNER JOIN vtiger_contactdetails ON vtiger_contactdetails.contactid = vtiger_crmentity.crmid
 						LEFT JOIN vtiger_contpotentialrel ON vtiger_contpotentialrel.contactid = vtiger_contactdetails.contactid
 						LEFT JOIN vtiger_potential ON vtiger_potential.contact_id = vtiger_contactdetails.contactid
-						WHERE deleted = 0 AND (vtiger_contpotentialrel.potentialid = $parentId OR vtiger_potential.potentialid = $parentId)
-						AND label like '%$searchValue%'";
-			
-				return $query;
+						WHERE deleted = 0 AND (vtiger_contpotentialrel.potentialid = ? OR vtiger_potential.potentialid = ?)
+						AND label like ?";
+			$params = array($parentId, $parentId, "%$searchValue%");
+            $returnQuery = $db->convert2Sql($query, $params);
+            return $returnQuery;
 		} else if ($parentId && $parentModule == 'HelpDesk') {
             $query = "SELECT ".implode(',',$searchFields)." FROM vtiger_crmentity
                         INNER JOIN vtiger_contactdetails ON vtiger_contactdetails.contactid = vtiger_crmentity.crmid
                         INNER JOIN vtiger_troubletickets ON vtiger_troubletickets.contact_id = vtiger_contactdetails.contactid
-                        WHERE deleted=0 AND vtiger_troubletickets.ticketid  = $parentId  AND label like '%$searchValue%'";
+                        WHERE deleted=0 AND vtiger_troubletickets.ticketid  = ?  AND label like ?";
 
-            return $query;
+            $params = array($parentId, "%$searchValue%");
+            $returnQuery = $db->convert2Sql($query, $params);
+            return $returnQuery;
         } else if($parentId && $parentModule == 'Campaigns') {
             $query = "SELECT ".implode(',',$searchFields)." FROM vtiger_crmentity
                         INNER JOIN vtiger_contactdetails ON vtiger_contactdetails.contactid = vtiger_crmentity.crmid
                         INNER JOIN vtiger_campaigncontrel ON vtiger_campaigncontrel.contactid = vtiger_contactdetails.contactid
-                        WHERE deleted=0 AND vtiger_campaigncontrel.campaignid = $parentId AND label like '%$searchValue%'";
+                        WHERE deleted=0 AND vtiger_campaigncontrel.campaignid = ? AND label like ?";
 
-            return $query;
+            $params = array($parentId, "%$searchValue%");
+            $returnQuery = $db->convert2Sql($query, $params);
+            return $returnQuery;
         } else if($parentId && $parentModule == 'Vendors') {
             $query = "SELECT ".implode(',',$searchFields)." FROM vtiger_crmentity
                         INNER JOIN vtiger_contactdetails ON vtiger_contactdetails.contactid = vtiger_crmentity.crmid
                         INNER JOIN vtiger_vendorcontactrel ON vtiger_vendorcontactrel.contactid = vtiger_contactdetails.contactid
-                        WHERE deleted=0 AND vtiger_vendorcontactrel.vendorid = $parentId AND label like '%$searchValue%'";
+                        WHERE deleted=0 AND vtiger_vendorcontactrel.vendorid = ? AND label like ?";
 
-            return $query;
+            $params = array($parentId, "%$searchValue%");
+            $returnQuery = $db->convert2Sql($query, $params);
+            return $returnQuery;
         } else if ($parentId && $parentModule == 'Quotes') {
             $query = "SELECT ".implode(',',$searchFields)." FROM vtiger_crmentity
                         INNER JOIN vtiger_contactdetails ON vtiger_contactdetails.contactid = vtiger_crmentity.crmid
                         INNER JOIN vtiger_quotes ON vtiger_quotes.contactid = vtiger_contactdetails.contactid
-                        WHERE deleted=0 AND vtiger_quotes.quoteid  = $parentId  AND label like '%$searchValue%'";
+                        WHERE deleted=0 AND vtiger_quotes.quoteid  = ?  AND label like ?";
 
-            return $query;
+            $params = array($parentId, "%$searchValue%");
+            $returnQuery = $db->convert2Sql($query, $params);
+            return $returnQuery;
         } else if ($parentId && $parentModule == 'PurchaseOrder') {
             $query = "SELECT ".implode(',',$searchFields)." FROM vtiger_crmentity
                         INNER JOIN vtiger_contactdetails ON vtiger_contactdetails.contactid = vtiger_crmentity.crmid
                         INNER JOIN vtiger_purchaseorder ON vtiger_purchaseorder.contactid = vtiger_contactdetails.contactid
-                        WHERE deleted=0 AND vtiger_purchaseorder.purchaseorderid  = $parentId  AND label like '%$searchValue%'";
+                        WHERE deleted=0 AND vtiger_purchaseorder.purchaseorderid  = ?  AND label like ?";
 
-            return $query;
+            $params = array($parentId, "%$searchValue%");
+            $returnQuery = $db->convert2Sql($query, $params);
+            return $returnQuery;
         } else if ($parentId && $parentModule == 'SalesOrder') {
             $query = "SELECT ".implode(',',$searchFields)." FROM vtiger_crmentity
                         INNER JOIN vtiger_contactdetails ON vtiger_contactdetails.contactid = vtiger_crmentity.crmid
                         INNER JOIN vtiger_salesorder ON vtiger_salesorder.contactid = vtiger_contactdetails.contactid
-                        WHERE deleted=0 AND vtiger_salesorder.salesorderid  = $parentId  AND label like '%$searchValue%'";
+                        WHERE deleted=0 AND vtiger_salesorder.salesorderid  = ?  AND label like ?";
 
-            return $query;
+            $params = array($parentId, "%$searchValue%");
+            $returnQuery = $db->convert2Sql($query, $params);
+            return $returnQuery;
         } else if ($parentId && $parentModule == 'Invoice') {
             $query = "SELECT ".implode(',',$searchFields)." FROM vtiger_crmentity
                         INNER JOIN vtiger_contactdetails ON vtiger_contactdetails.contactid = vtiger_crmentity.crmid
                         INNER JOIN vtiger_invoice ON vtiger_invoice.contactid = vtiger_contactdetails.contactid
-                        WHERE deleted=0 AND vtiger_invoice.invoiceid  = $parentId  AND label like '%$searchValue%'";
+                        WHERE deleted=0 AND vtiger_invoice.invoiceid  = ?  AND label like ?";
 
-            return $query;
+            $params = array($parentId, "%$searchValue%");
+            $returnQuery = $db->convert2Sql($query, $params);
+            return $returnQuery;
         }
 
 		return parent::getSearchRecordsQuery($searchValue,$searchFields,$parentId, $parentModule);
diff --git a/modules/CustomView/ListViewTop.php b/modules/CustomView/ListViewTop.php
index f175168a62fe270c914414f8cb16599ba2bd78d2..f676baa60bc7cad70102b3448e2690764a398e4a 100644
--- a/modules/CustomView/ListViewTop.php
+++ b/modules/CustomView/ListViewTop.php
@@ -79,7 +79,7 @@ function getKeyMetrics($maxval,$calCnt)
 				$oCustomView = new CustomView($metriclist['module']);
 				$metricsql = $oCustomView->getModifiedCvListQuery($metriclist['id'],$listquery,$metriclist['module']);
 				$metricsql = Vtiger_Functions::mkCountQuery($metricsql);
-				$metricresult = $adb->query($metricsql);
+				$metricresult = $adb->pquery($metricsql, array());
 				if($metricresult)
 				{
 					$rowcount = $adb->fetch_array($metricresult);
@@ -91,7 +91,7 @@ function getKeyMetrics($maxval,$calCnt)
 				$queryGenerator->initForCustomViewById($metriclist['id']);
 				$metricsql = $queryGenerator->getQuery();
 				$metricsql = Vtiger_Functions::mkCountQuery($metricsql);
-				$metricresult = $adb->query($metricsql);
+				$metricresult = $adb->pquery($metricsql, array());
 				if($metricresult)
 				{
 					$rowcount = $adb->fetch_array($metricresult);
diff --git a/modules/CustomView/models/Record.php b/modules/CustomView/models/Record.php
index 2c2cf5b13acc608ccce9025a8e26763337a0b504..e0161d030637b781b7a13f6ce9c555a60b25b0d5 100644
--- a/modules/CustomView/models/Record.php
+++ b/modules/CustomView/models/Record.php
@@ -232,9 +232,10 @@ class CustomView_Record_Model extends Vtiger_Base_Model {
 		}
 
 		if($skipRecords && !empty($skipRecords) && is_array($skipRecords) && count($skipRecords) > 0) {
-			$listQuery .= ' AND '.$baseTableName.'.'.$baseTableId.' NOT IN ('. implode(',', $skipRecords) .')';
+			$listQuery .= ' AND '.$baseTableName.'.'.$baseTableId.' NOT IN ('. generateQuestionMarks($skipRecords) .')';
+            $params = array($skipRecords);
 		}
-		$result = $db->query($listQuery);
+		$result = $db->pquery($listQuery, $params);
 		$noOfRecords = $db->num_rows($result);
 		$recordIds = array();
 		for($i=0; $i<$noOfRecords; ++$i) {
diff --git a/modules/Emails/Emails.php b/modules/Emails/Emails.php
index f3dac4473ecedbf522c468277a292c54188eb6e3..19316b7a2604b3654cd133694f40323ff0e60de4 100644
--- a/modules/Emails/Emails.php
+++ b/modules/Emails/Emails.php
@@ -550,6 +550,7 @@ class Emails extends CRMEntity {
 			$module = getTabname($tabId);
 		}
 		$query = $this->getNonAdminAccessQuery($module, $user, $parentRole, $userGroups);
+        $tableName = Vtiger_Util_Helper::validateStringForSql($tableName);
 		$query = "create temporary table IF NOT EXISTS $tableName(id int(11) primary key, shared int(1) default 0) ignore ".$query;
 		$db = PearDatabase::getInstance();
 		$result = $db->pquery($query, array());
diff --git a/modules/Emails/models/Module.php b/modules/Emails/models/Module.php
index c591f976d61a36eaa60685779a6ba3d895acd291..57e4ae774b9aa2d70c73f6185bb7f70e7054e221 100644
--- a/modules/Emails/models/Module.php
+++ b/modules/Emails/models/Module.php
@@ -64,6 +64,7 @@ class Emails_Module_Model extends Vtiger_Module_Model{
 	public function searchEmails($searchValue, $moduleName = false) {
 		global $current_user;
 		$emailsResult = array();
+        $params = array();
 		$db = PearDatabase::getInstance();
 
 		$EmailsModuleModel = Vtiger_Module_Model::getInstance('Emails');
@@ -88,16 +89,20 @@ class Emails_Module_Model extends Vtiger_Module_Model{
             $query = "SELECT vtiger_emailslookup.crmid, vtiger_emailslookup.setype, vtiger_emailslookup.value, 
                           vtiger_crmentity.label FROM vtiger_emailslookup INNER JOIN vtiger_crmentity on 
                           vtiger_crmentity.crmid = vtiger_emailslookup.crmid AND vtiger_crmentity.deleted=0 WHERE 
-						  vtiger_emailslookup.fieldid in (".implode(',', $fieldIds).") and 
-						  vtiger_emailslookup.setype in (".implode(',', $activeModules).") 
+						  vtiger_emailslookup.fieldid in (".generateQuestionMarks($fieldIds).") and 
+						  vtiger_emailslookup.setype in (".generateQuestionMarks($activeModules).") 
                           and (vtiger_emailslookup.value LIKE ? OR vtiger_crmentity.label LIKE ?)";
-
+            $params = array_merge($params, $fieldIds);
+            $params = array_merge($params, $activeModules);
+            array_push($params, "%$searchValue%");
+            array_push($params, "%$searchValue%");
 			$emailOptOutIds = $this->getEmailOptOutRecordIds();
 			if (!empty($emailOptOutIds)) {
-				$query .= " AND vtiger_emailslookup.crmid NOT IN (".implode(',', $emailOptOutIds).")";
+				$query .= " AND vtiger_emailslookup.crmid NOT IN (". generateQuestionMarks($emailOptOutIds).")";
+                $params = array_merge($params, $emailOptOutIds);
 			}
 
-			$result = $db->pquery($query, array('%'.$searchValue.'%', '%'.$searchValue.'%'));
+			$result = $db->pquery($query, $params);
             $isAdmin = is_admin($current_user);
 			while ($row = $db->fetchByAssoc($result)) {
 				if (!$isAdmin) {
diff --git a/modules/HelpDesk/HelpDesk.php b/modules/HelpDesk/HelpDesk.php
index 9bd40d4b25ebf6650569aebb1df5269fcd8d1d63..0d83c3d3a9926af7b77129c90d6ffa295a1d05e7 100644
--- a/modules/HelpDesk/HelpDesk.php
+++ b/modules/HelpDesk/HelpDesk.php
@@ -305,7 +305,7 @@ class HelpDesk extends CRMEntity {
 		global $log;
 		$log->debug("Entering process_list_query(".$query.") method ...");
 
-   		$result =& $this->db->query($query,true,"Error retrieving $this->object_name list: ");
+   		$result =& $this->db->pquery($query,array(),true,"Error retrieving $this->object_name list: ");
 		$list = Array();
 	        $rows_found =  $this->db->getRowCount($result);
         	if($rows_found != 0)
diff --git a/modules/PickList/PickListUtils.php b/modules/PickList/PickListUtils.php
index c742a78355adc3c8a9ff3644dd87ed280082947a..bd5b04705bb1803bf388d1f0571459c853167e2f 100644
--- a/modules/PickList/PickListUtils.php
+++ b/modules/PickList/PickListUtils.php
@@ -112,7 +112,7 @@ function getAllPickListValues($fieldName,$lang = Array() ){
 		$arr = array_map('decode_html', $userRecordModel->getAccessibleUsers());
 	}else {
 		$sql = 'SELECT * FROM vtiger_'.$adb->sql_escape_string($fieldName);
-		$result = $adb->query($sql);
+		$result = $adb->pquery($sql, array());
 		$count = $adb->num_rows($result);
 
 		$arr = array();
@@ -143,7 +143,7 @@ function getEditablePicklistValues($fieldName, $lang= array(), $adb){
 	$values = array();
 	$fieldName = $adb->sql_escape_string($fieldName);
 	$sql="select $fieldName from vtiger_$fieldName where presence=1 and $fieldName <> '--None--'";
-	$res = $adb->query($sql);
+	$res = $adb->pquery($sql, array());
 	$RowCount = $adb->num_rows($res);
 	if($RowCount > 0){
 		for($i=0;$i<$RowCount;$i++){
@@ -169,7 +169,7 @@ function getNonEditablePicklistValues($fieldName, $lang=array(), $adb){
 	$values = array();
 	$fieldName = $adb->sql_escape_string($fieldName);
 	$sql = "select $fieldName from vtiger_$fieldName where presence=0";
-	$result = $adb->query($sql);
+	$result = $adb->pquery($sql, array());
 	$count = $adb->num_rows($result);
 	for($i=0;$i<$count;$i++){
 		$non_val = $adb->query_result($result,$i,$fieldName);
diff --git a/modules/Potentials/models/Module.php b/modules/Potentials/models/Module.php
index d33ec91eb2dcd255324ad32d200910e48c93e665..bb6a9a7a342bc4e0214120d1085187c3424dc2b7 100644
--- a/modules/Potentials/models/Module.php
+++ b/modules/Potentials/models/Module.php
@@ -360,11 +360,14 @@ class Potentials_Module_Model extends Vtiger_Module_Model {
 	 * @return <String> - query
 	 */
 	public function getSearchRecordsQuery($searchValue,$searchFields, $parentId=false, $parentModule=false) {
+        $db = PearDatabase::getInstance();
 		if($parentId && in_array($parentModule, array('Accounts', 'Contacts'))) {
 			$query = "SELECT ".implode(',',$searchFields)." FROM vtiger_crmentity
 						INNER JOIN vtiger_potential ON vtiger_potential.potentialid = vtiger_crmentity.crmid
-						WHERE deleted = 0 AND vtiger_potential.related_to = $parentId AND label like '%$searchValue%'";
-			return $query;
+						WHERE deleted = 0 AND vtiger_potential.related_to = ? AND label like ?";
+			$params = array($parentId, "%$searchValue%");
+            $returnQuery = $db->convert2Sql($query, $params);
+            return $returnQuery;
 		}
 		return parent::getSearchRecordsQuery($parentId, $parentModule);
 	}
diff --git a/modules/PriceBooks/PriceBooks.php b/modules/PriceBooks/PriceBooks.php
index 725c35611df5760e7ef36ca88ae772e5cb3361b4..916a3dc2e84dc4c7ca91e7ae0961201627033dd9 100755
--- a/modules/PriceBooks/PriceBooks.php
+++ b/modules/PriceBooks/PriceBooks.php
@@ -346,14 +346,16 @@ class PriceBooks extends CRMEntity {
 		$focus = CRMEntity::getInstance($moduleName);
         $moduleSubject = 'bookname';
 
-		$tableName = Import_Utils_Helper::getDbTableName($obj->user);
-		$sql = 'SELECT * FROM ' . $tableName . ' WHERE status = '. Import_Data_Action::$IMPORT_RECORD_NONE .' GROUP BY '. $moduleSubject;
-
+        $params = array();
+		$tableName = Vtiger_Util_Helper::validateStringForSql(Import_Utils_Helper::getDbTableName($obj->user));
+		$sql = 'SELECT * FROM ' . $tableName . ' WHERE status = ? GROUP BY ?';
+        array_push($params, Import_Data_Action::$IMPORT_RECORD_NONE);
+        array_push($params, $moduleSubject);
 		if($obj->batchImport) {
 			$importBatchLimit = getImportBatchLimit();
 			$sql .= ' LIMIT '. $importBatchLimit;
 		}
-		$result = $adb->query($sql);
+		$result = $adb->pquery($sql, $params);
 		$numberOfRecords = $adb->num_rows($result);
 
 		if ($numberOfRecords <= 0) {
@@ -370,8 +372,11 @@ class PriceBooks extends CRMEntity {
 			$fieldData = array();
 			$subject = str_replace("\\", "\\\\", $subject);
 			$subject = str_replace('"', '""', $subject);
-			$sql = 'SELECT * FROM ' . $tableName . ' WHERE status = '. Import_Data_Action::$IMPORT_RECORD_NONE .' AND '. $moduleSubject . ' = "'. $subject .'"';
-			$subjectResult = $adb->query($sql);
+            $params = array();
+			$sql = 'SELECT * FROM ' . $tableName . ' WHERE status = ? AND '. $moduleSubject . ' = ? ';
+            array_push($params, Import_Data_Action::$IMPORT_RECORD_NONE);
+            array_push($params, $subject);
+			$subjectResult = $adb->pquery($sql, $params);
 			$count = $adb->num_rows($subjectResult);
 			$subjectRowIDs = $fieldArray = $productList = array();
 			for ($j = 0; $j < $count; ++$j) {
diff --git a/modules/Reports/ReportRun.php b/modules/Reports/ReportRun.php
index 617ec6ba55daa40109d76f160164342ef131f4cf..7a2469d5961897fbe04913b3a7b35ca993cc43f0 100644
--- a/modules/Reports/ReportRun.php
+++ b/modules/Reports/ReportRun.php
@@ -3159,7 +3159,7 @@ class ReportRun extends CRMEntity {
 			$sSQL = $this->sGetSQLforReport($this->reportid, $filtersql, "COLUMNSTOTOTAL");
 			if (isset($this->totallist)) {
 				if ($sSQL != "") {
-					$result = $adb->query($sSQL);
+					$result = $adb->pquery($sSQL, array());
 					$y = $adb->num_fields($result);
 					$custom_field_values = $adb->fetch_array($result);
 
@@ -3325,7 +3325,7 @@ class ReportRun extends CRMEntity {
 			$sSQL = $this->sGetSQLforReport($this->reportid, $filtersql, "COLUMNSTOTOTAL");
 			if (isset($this->totallist)) {
 				if ($sSQL != '') {
-					$result = $adb->query($sSQL);
+					$result = $adb->pquery($sSQL, array());
 					$y = $adb->num_fields($result);
 					$custom_field_values = $adb->fetch_array($result);
 
@@ -3540,7 +3540,7 @@ class ReportRun extends CRMEntity {
 
 			if (isset($this->totallist)) {
 				if ($sSQL != "") {
-					$result = $adb->query($sSQL);
+					$result = $adb->pquery($sSQL, array());
 					$y = $adb->num_fields($result);
 					$custom_field_values = $adb->fetch_array($result);
 					$reportModule = 'Reports';
@@ -3764,7 +3764,7 @@ class ReportRun extends CRMEntity {
 			$sSQL = $this->sGetSQLforReport($this->reportid, $filtersql, "COLUMNSTOTOTAL");
 			if (isset($this->totallist)) {
 				if ($sSQL != "") {
-					$result = $adb->query($sSQL);
+					$result = $adb->pquery($sSQL, array());
 					$y = $adb->num_fields($result);
 					$custom_field_values = $adb->fetch_array($result);
 					$reportModule = 'Reports';
@@ -4173,7 +4173,7 @@ class ReportRun extends CRMEntity {
 				$mulsel = "select distinct $fieldname from vtiger_$fieldname inner join vtiger_role2picklist on vtiger_role2picklist.picklistvalueid = vtiger_$fieldname.picklist_valueid where roleid ='" . $roleid . "' and picklistid in (select picklistid from vtiger_$fieldname)"; // order by sortid asc - not requried
 			}
 			if ($fieldname != 'firstname')
-				$mulselresult = $adb->query($mulsel);
+				$mulselresult = $adb->pquery($mulsel, array());
 			for ($j = 0; $j < $adb->num_rows($mulselresult); $j++) {
 				$fldvalue = $adb->query_result($mulselresult, $j, $fieldname);
 				if (in_array($fldvalue, $fieldvalues))
diff --git a/modules/Reports/ReportSharing.php b/modules/Reports/ReportSharing.php
index 6481cd48adeb8b78f0158dc2e69e982286e8c09e..30fcc9daec8b9900adc04079e6f0c10bceb503ee 100644
--- a/modules/Reports/ReportSharing.php
+++ b/modules/Reports/ReportSharing.php
@@ -107,7 +107,7 @@ function getVisibleCriteria($recordid='')
 	if($selcriteria == ""){
 		$selcriteria = 'Public';
 	}
-	$filter_result = $adb->query("select * from vtiger_reportfilters");
+	$filter_result = $adb->pquery("select * from vtiger_reportfilters", array());
 	$numrows = $adb->num_rows($filter_result);
 	for($j=0;$j<$numrows;$j++)
 	{
diff --git a/modules/Reports/models/Folder.php b/modules/Reports/models/Folder.php
index 6c3c4c5a47ee2633f2501a52dd060c72c8e33e0c..a7e64d2a5db4c7bd8df02c487f8f7b6847353b19 100644
--- a/modules/Reports/models/Folder.php
+++ b/modules/Reports/models/Folder.php
@@ -283,7 +283,8 @@ class Reports_Folder_Model extends Vtiger_Base_Model {
 	public function getReportsCount() {
 		$db = PearDatabase::getInstance();
 		$params = array();
-
+        global $log;
+        $log->fatal('get reports count api');
 		// To get the report ids which are permitted for the user
 			$query = "SELECT reportmodulesid, primarymodule from vtiger_reportmodules";
 			$result = $db->pquery($query, array());
@@ -299,7 +300,8 @@ class Reports_Folder_Model extends Vtiger_Base_Model {
 		//End
 		$sql = "SELECT count(*) AS count FROM vtiger_report
 				INNER JOIN vtiger_reportfolder ON vtiger_reportfolder.folderid = vtiger_report.folderid AND 
-				vtiger_report.reportid in (".implode(',',$allowedReportIds).")";
+				vtiger_report.reportid in (". generateQuestionMarks($allowedReportIds).")";
+        $params = array_merge($params, $allowedReportIds);
 		$fldrId = $this->getId();
 		if($fldrId == 'All') {
 			$fldrId = false;
@@ -323,7 +325,8 @@ class Reports_Folder_Model extends Vtiger_Base_Model {
 
 			$groupId = implode(',',$currentUserModel->get('groups'));
 			if ($groupId) {
-				$groupQuery = "(SELECT reportid from vtiger_reportsharing WHERE shareid IN ($groupId) AND setype = 'groups') OR ";
+				$groupQuery = "(SELECT reportid from vtiger_reportsharing WHERE shareid IN (". generateQuestionMarks($currentUserModel->get('groups')).") AND setype = 'groups') OR ";
+                $params = array_merge($params, $currentUserModel->get('groups'));
 			}
 
 			$sql .= " AND (vtiger_report.reportid IN (SELECT reportid from vtiger_reportsharing WHERE $groupQuery shareid = ? AND setype = 'users')
@@ -337,6 +340,12 @@ class Reports_Folder_Model extends Vtiger_Base_Model {
 			$parentRoleSeq = $currentUserModel->get('parent_role_seq').'::%';
 			array_push($params, $currentUserId, $currentUserId, $parentRoleSeq);
 		}
+        $log->fatal('Final query params are => ');
+        $log->fatal($params);
+        $log->fatal('sql query is => ');
+        $log->fatal($sql);
+        $log->fatal('Converted query is => ');
+        $log->fatal($db->convert2sql($sql, $params));
 		$result = $db->pquery($sql, $params);
 		return $db->query_result($result, 0, 'count');
 	}
@@ -373,9 +382,9 @@ class Reports_Folder_Model extends Vtiger_Base_Model {
 		$listQuery = $this->getListViewQuery($folderId, $searchParams);
 
 		if($skipRecords && !empty($skipRecords) && is_array($skipRecords) && count($skipRecords) > 0) {
-			$listQuery .= ' AND '.$baseTableName.'.'.$baseTableId.' NOT IN ('. implode(',', $skipRecords) .')';
+			$listQuery .= ' AND '.$baseTableName.'.'.$baseTableId.' NOT IN ('. generateQuestionMarks($skipRecords) .')';
 		}
-		$result = $db->query($listQuery);
+		$result = $db->pquery($listQuery, $skipRecords);
 		$noOfRecords = $db->num_rows($result);
 		$recordIds = array();
 		for($i=0; $i<$noOfRecords; ++$i) {
diff --git a/modules/Reports/models/Record.php b/modules/Reports/models/Record.php
index 96101870a2b177eadea38b180a21cd61b5807f63..86c626065d746a3a8ef796042c19311ec5f33370 100644
--- a/modules/Reports/models/Record.php
+++ b/modules/Reports/models/Record.php
@@ -793,7 +793,7 @@ class Reports_Record_Model extends Vtiger_Record_Model {
 			$query = $this->get('recordCountQuery');
 		global $adb;
 		$count = 0;
-		$result = $adb->query($query, array());
+		$result = $adb->pquery($query, array());
 		if($adb->num_rows($result) > 0 ){
 			$count = $adb->query_result($result, 0, 'count');
 		}
diff --git a/modules/Rss/models/Module.php b/modules/Rss/models/Module.php
index 83d8717160b2d8dbb1f8fdbc4bfb5bfb1287ba90..9d96b95ec56fbb4ac2f30eef76d5e9a9ee68586a 100644
--- a/modules/Rss/models/Module.php
+++ b/modules/Rss/models/Module.php
@@ -51,7 +51,7 @@ class Rss_Module_Model extends Vtiger_Module_Model {
     public function getRssSources() { 
         $db = PearDatabase::getInstance();
         
-        $sql = 'Select *from vtiger_rss';
+        $sql = 'Select * from vtiger_rss';
         $result = $db->pquery($sql, array());
         $noOfRows = $db->num_rows($result);
 
diff --git a/modules/Settings/Leads/models/Mapping.php b/modules/Settings/Leads/models/Mapping.php
index 3100f8e4790c140cb16e74419614650c6bf06615..313cb0c1bb76f24ec7ea0dbb970e44457b22dae3 100644
--- a/modules/Settings/Leads/models/Mapping.php
+++ b/modules/Settings/Leads/models/Mapping.php
@@ -180,14 +180,16 @@ class Settings_Leads_Mapping_Model extends Settings_Vtiger_Module_Model {
 			$insertQuery = 'INSERT INTO vtiger_convertleadmapping(leadfid, accountfid, contactfid, potentialfid) VALUES ';
 
 			$count = count($createMappingsList);
+            $params = array();
 			for ($i=0; $i<$count; $i++) {
 				$mappingDetails = $createMappingsList[$i];
-				$insertQuery .= '('. $mappingDetails['lead'] .', '. $mappingDetails['account'] .', '. $mappingDetails['contact'] .', '. $mappingDetails['potential'] .')';
+				$insertQuery .= '(?, ?, ?, ?)';
+                array_push($params, $mappingDetails['lead'], $mappingDetails['account'], $mappingDetails['contact'], $mappingDetails['potential']);
 				if ($i !== $count-1) {
 					$insertQuery .= ', ';
 				}
 			}
-			$db->pquery($insertQuery, array());
+			$db->pquery($insertQuery, $params);
 		}
 
 		if ($updateMappingsList) {
diff --git a/modules/Settings/LoginHistory/models/ListView.php b/modules/Settings/LoginHistory/models/ListView.php
index 635658d39b4c2501809d6a9aa0bbfc1bb04ab5be..e682545d5793cbb14c8bc4cf192fa6ba566487b0 100644
--- a/modules/Settings/LoginHistory/models/ListView.php
+++ b/modules/Settings/LoginHistory/models/ListView.php
@@ -14,6 +14,7 @@ class Settings_LoginHistory_ListView_Model extends Settings_Vtiger_ListView_Mode
 	 * @return type
 	 */
     public function getBasicListQuery() {
+        $db = PearDatabase::getInstance();
         $module = $this->getModule();
 		$userNameSql = getSqlForNameInDisplayFormat(array('first_name'=>'vtiger_users.first_name', 'last_name' => 'vtiger_users.last_name'), 'Users');
 		
@@ -23,11 +24,13 @@ class Settings_LoginHistory_ListView_Model extends Settings_Vtiger_ListView_Mode
 		$search_key = $this->get('search_key');
 		$value = Vtiger_Functions::realEscapeString($this->get('search_value'));
 
+        $params = array();
 		if(!empty($search_key) && !empty($value)) {
-			$query .= " WHERE $module->baseTable.$search_key = '$value'";
+			$query .= " WHERE $module->baseTable.$search_key = ?";
+            $params[] = $value;
 		}
         $query .= " ORDER BY login_time DESC"; 
- 	 return $query; 
+ 	 return $db->convert2Sql($query, $params); 
     }
 
 	public function getListViewLinks() {
@@ -47,12 +50,13 @@ class Settings_LoginHistory_ListView_Model extends Settings_Vtiger_ListView_Mode
 
 		$search_key = $this->get('search_key');
 		$value = $this->get('search_value');
-		
+		$params = array();
 		if(!empty($search_key) && !empty($value)) {
-			$listQuery .= " WHERE $module->baseTable.$search_key = '$value'";
+			$listQuery .= " WHERE $module->baseTable.$search_key = ?";
+            $params[] = $value;
 		}
 
-		$listResult = $db->pquery($listQuery, array());
+		$listResult = $db->pquery($listQuery, $params);
 		return $db->query_result($listResult, 0, 'count');
 	}
 }
diff --git a/modules/Settings/Picklist/actions/SaveAjax.php b/modules/Settings/Picklist/actions/SaveAjax.php
index 2388760f1102325af112098d802132c9d519d780..da391e3f88ddcc1b719884b86bb3465e770fdb21 100644
--- a/modules/Settings/Picklist/actions/SaveAjax.php
+++ b/modules/Settings/Picklist/actions/SaveAjax.php
@@ -40,20 +40,23 @@ class Settings_Picklist_SaveAjax_Action extends Settings_Vtiger_Basic_Action {
                 $defaultFieldName = 'defaultactivitytype';
             else
                 $defaultFieldName = 'defaulteventstatus';
-            $queryToGetId = 'SELECT id FROM vtiger_users WHERE '.$defaultFieldName.' IN (';
+            $queryToGetId = "SELECT id FROM vtiger_users WHERE ".$defaultFieldName." IN (";
+            $params = array();
              if(is_array($oldValue)) {
                  for($i=0;$i<count($oldValue);$i++) {
-                     $queryToGetId .= '"'.$oldValue[$i].'"';
+                     $queryToGetId .= "?";
+                     array_push($params, $oldValue[$i]);
                      if($i<(count($oldValue)-1)) {
-                         $queryToGetId .= ',';
+                         $queryToGetId .= ",";
                      }
                  }
-                 $queryToGetId .= ')';
+                 $queryToGetId .= ")";
              }
              else {
-                 $queryToGetId .= '"'.$oldValue.'")';
+                 $queryToGetId .= "?)";
+                 array_push($params, $oldValue);
              }
-            $result = $db->pquery($queryToGetId, array());
+            $result = $db->pquery($queryToGetId, $params);
             $rowCount =  $db->num_rows($result);
             for($i=0; $i<$rowCount; $i++) {
                 $recordId = $db->query_result_rowdata($result, $i);
diff --git a/modules/Settings/Picklist/models/Field.php b/modules/Settings/Picklist/models/Field.php
index f7b64bd6b702fb1320bf7560e9b2737157b88028..1af6edee6cfd3dc87c8431049901f9a0d64ecdff 100644
--- a/modules/Settings/Picklist/models/Field.php
+++ b/modules/Settings/Picklist/models/Field.php
@@ -39,7 +39,7 @@ class Settings_Picklist_Field_Model extends Vtiger_Field_Model {
             return Vtiger_Cache::get('PicklistRoleBasedValues',$this->getName().implode('_', $roleIdList));
         }
         $db = PearDatabase::getInstance();
-        $fieldName = $this->getName();
+        $fieldName = Vtiger_Util_Helper::validateStringForSql($this->getName());
         $tableName = 'vtiger_'.$fieldName;
         $idColName = $fieldName.'id';
         $query = 'SELECT '.$fieldName;
@@ -103,6 +103,7 @@ class Settings_Picklist_Field_Model extends Vtiger_Field_Model {
      * @return type -- array of values
      */
 	public function getEditablePicklistValues($fieldName){
+        $fieldName = Vtiger_Util_Helper::validateStringForSql($fieldName);
 		$cache = Vtiger_Cache::getInstance();
 		$EditablePicklistValues = $cache->get('EditablePicklistValues', $fieldName);
         if($EditablePicklistValues) {
@@ -129,6 +130,7 @@ class Settings_Picklist_Field_Model extends Vtiger_Field_Model {
      * @return type -- array of values
      */
 	public static function getNonEditablePicklistValues($fieldName){
+        $fieldName = Vtiger_Util_Helper::validateStringForSql($fieldName);
 		$cache = Vtiger_Cache::getInstance();
 		$NonEditablePicklistValues = $cache->get('NonEditablePicklistValues', $fieldName);
         if($NonEditablePicklistValues) {
diff --git a/modules/Settings/Picklist/models/Module.php b/modules/Settings/Picklist/models/Module.php
index 325c0e467f8ae264814901ecf84e23dfe2fac031..906484910e5c05955bc3b27204098df73d100dee 100644
--- a/modules/Settings/Picklist/models/Module.php
+++ b/modules/Settings/Picklist/models/Module.php
@@ -30,7 +30,7 @@ class Settings_Picklist_Module_Model extends Vtiger_Module_Model {
 
 	public function addPickListValues($fieldModel, $newValue, $rolesSelected = array(), $color = '') {
 		$db = PearDatabase::getInstance();
-		$pickListFieldName = $fieldModel->getName();
+		$pickListFieldName = Vtiger_Util_Helper::validateStringForSql($fieldModel->getName());
 		$id = $db->getUniqueID("vtiger_$pickListFieldName");
 		vimport('~~/include/ComboUtil.php');
 		$picklist_valueid = getUniquePicklistID();
@@ -74,6 +74,7 @@ class Settings_Picklist_Module_Model extends Vtiger_Module_Model {
 	public function renamePickListValues($pickListFieldName, $oldValue, $newValue, $moduleName, $id, $rolesList = false, $color = '') {
 		$db = PearDatabase::getInstance();
 
+        $pickListFieldName = Vtiger_Util_Helper::validateStringForSql($pickListFieldName);
 		$query = 'SELECT tablename, fieldid, columnname FROM vtiger_field WHERE fieldname=? and presence IN (0,2)';
 		$result = $db->pquery($query, array($pickListFieldName));
 		$num_rows = $db->num_rows($result);
@@ -128,6 +129,7 @@ class Settings_Picklist_Module_Model extends Vtiger_Module_Model {
 		if(!is_array($valueToDeleteId)) {
 			$valueToDeleteId = array($valueToDeleteId);
 		}
+        $pickListFieldName = Vtiger_Util_Helper::validateStringForSql($pickListFieldName);
 		$primaryKey = Vtiger_Util_Helper::getPickListId($pickListFieldName);
 
 		$pickListValues = array();
@@ -224,6 +226,7 @@ class Settings_Picklist_Module_Model extends Vtiger_Module_Model {
 		$dieOnErrorOldValue = $db->dieOnError;
 		$db->dieOnError = false;
 
+        $picklistFieldName = Vtiger_Util_Helper::validateStringForSql($picklistFieldName);
 		$sql = "select picklistid from vtiger_picklist where name=?";
 		$result = $db->pquery($sql, array($picklistFieldName));
 		$picklistid = $db->query_result($result,0,"picklistid");
@@ -272,8 +275,8 @@ class Settings_Picklist_Module_Model extends Vtiger_Module_Model {
 				$deleteValueList[] = ' ( roleid = "'.$roleId.'" AND '.'picklistvalueid = "'.$pickListValueId.'") ';
 			}
 		}
-		$query = 'INSERT IGNORE INTO vtiger_role2picklist (roleid,picklistvalueid,picklistid) VALUES '.implode(',',$insertValueList);
-		$result = $db->pquery($query,array());
+		$query = 'INSERT IGNORE INTO vtiger_role2picklist (roleid,picklistvalueid,picklistid) VALUES '. generateQuestionMarks($insertValueList);
+		$result = $db->pquery($query, $insertValueList);
 
 		$deleteQuery = 'DELETE FROM vtiger_role2picklist WHERE '.implode(' OR ',$deleteValueList);
 
@@ -287,6 +290,7 @@ class Settings_Picklist_Module_Model extends Vtiger_Module_Model {
     public function updateSequence($pickListFieldName , $picklistValues, $rolesList = false) {
 		$db = PearDatabase::getInstance();
 
+        $pickListFieldName = Vtiger_Util_Helper::validateStringForSql($pickListFieldName);
 		$primaryKey = Vtiger_Util_Helper::getPickListId($pickListFieldName);
 		$paramArray = array();
 		$query = 'UPDATE '.$this->getPickListTableName($pickListFieldName).' SET sortorderid = CASE ';
@@ -307,9 +311,9 @@ class Settings_Picklist_Module_Model extends Vtiger_Module_Model {
 		$query = "SELECT distinct vtiger_tab.tablabel, vtiger_tab.name as tabname
 				  FROM vtiger_tab
 						inner join vtiger_field on vtiger_tab.tabid=vtiger_field.tabid
-				  WHERE uitype IN (15,33,16,114) and vtiger_field.tabid NOT IN (". implode(',', $unsupportedModuleIds) .")  and vtiger_tab.presence != 1 and vtiger_field.presence in (0,2)
+				  WHERE uitype IN (15,33,16,114) and vtiger_field.tabid NOT IN (". generateQuestionMarks($unsupportedModuleIds) .")  and vtiger_tab.presence != 1 and vtiger_field.presence in (0,2)
 				  ORDER BY vtiger_tab.tabid ASC";
-		$result = $db->pquery($query, array());
+		$result = $db->pquery($query, $unsupportedModuleIds);
 
 		$modulesModelsList = array();
 		while($row = $db->fetch_array($result)){
@@ -427,7 +431,7 @@ class Settings_Picklist_Module_Model extends Vtiger_Module_Model {
 		} else {
 			$valueToDeleteID = $valueToDelete;
 		}
-
+        $pickListFieldName = Vtiger_Util_Helper::validateStringForSql($pickListFieldName);
 		$primaryKey = Vtiger_Util_Helper::getPickListId($pickListFieldName);
 		$pickListDeleteValue = array();
 		$getPickListValueQuery = "SELECT $pickListFieldName FROM " . $this->getPickListTableName($pickListFieldName) . " WHERE $primaryKey IN (" . generateQuestionMarks($valueToDeleteID) . ")";
@@ -447,6 +451,7 @@ class Settings_Picklist_Module_Model extends Vtiger_Module_Model {
 	 */
 	public static function getPicklistColor($pickListFieldName, $pickListId) {
 		$db = PearDatabase::getInstance();
+        $pickListFieldName = Vtiger_Util_Helper::validateStringForSql($pickListFieldName);
 		$primaryKey = Vtiger_Util_Helper::getPickListId($pickListFieldName);
 		$colums = $db->getColumnNames("vtiger_$pickListFieldName");
 		if(in_array('color',$colums)) {
@@ -484,11 +489,12 @@ class Settings_Picklist_Module_Model extends Vtiger_Module_Model {
 	 */
 	public static function getPicklistColorMap($fieldName, $key = false) {
 		$db = PearDatabase::getInstance();
+        $fieldName = Vtiger_Util_Helper::validateStringForSql($fieldName);
 		$primaryKey = Vtiger_Util_Helper::getPickListId($fieldName);
 		$colums = $db->getColumnNames("vtiger_$fieldName");
 		if(in_array('color',$colums)) {
 			$query = 'SELECT '.$primaryKey.',color,'.$fieldName.' FROM vtiger_'.$fieldName;
-			$result = $db->pquery($query);
+			$result = $db->pquery($query, array());
 			$pickListColorMap = array();
 			$isRoleBasedPicklist = vtws_isRoleBasedPicklist($fieldName);
 			$accessablePicklistValues = self::getAccessiblePicklistValues($fieldName);
@@ -524,6 +530,7 @@ class Settings_Picklist_Module_Model extends Vtiger_Module_Model {
 	 */
 	public static function getPicklistColorByValue($fieldName, $fieldValue) {
 		$db = PearDatabase::getInstance();
+        $fieldName = Vtiger_Util_Helper::validateStringForSql($fieldName);
 		$tableName = "vtiger_$fieldName";
 		if(Vtiger_Utils::CheckTable($tableName)) {
 			$colums = $db->getColumnNames($tableName);
@@ -554,6 +561,7 @@ class Settings_Picklist_Module_Model extends Vtiger_Module_Model {
 
 		//As older look utf8 characters are pushed as html-entities,and in new utf8 characters are pushed to database
 		//so we are checking for both the values
+        $pickListFieldName = Vtiger_Util_Helper::validateStringForSql($pickListFieldName);
 		$primaryKey = Vtiger_Util_Helper::getPickListId($pickListFieldName);
 		if(!empty($color)) {
 			$query = 'UPDATE ' . $this->getPickListTableName($pickListFieldName) . ' SET color = ? WHERE '.$primaryKey.' = ?';
diff --git a/modules/Settings/Potentials/models/Mapping.php b/modules/Settings/Potentials/models/Mapping.php
index df33a0a4c06b97c3d6d5f61f9f92e99ce33563a3..6770bc66b8a54ac195260405839c81b3b70d6dd9 100644
--- a/modules/Settings/Potentials/models/Mapping.php
+++ b/modules/Settings/Potentials/models/Mapping.php
@@ -121,14 +121,16 @@ class Settings_Potentials_Mapping_Model extends Settings_Leads_Mapping_Model {
 			$insertQuery = 'INSERT INTO vtiger_convertpotentialmapping(potentialfid, projectfid) VALUES ';
 
 			$count = count($createMappingsList);
+            $params = array();
 			for ($i=0; $i<$count; $i++) {
 				$mappingDetails = $createMappingsList[$i];
-				$insertQuery .= '('. $mappingDetails['potential'] .', '. $mappingDetails['project'] .')';
+				$insertQuery .= '(?, ?)';
+                array_push($params, $mappingDetails['potential'], $mappingDetails['project']);
 				if ($i !== $count-1) {
 					$insertQuery .= ', ';
 				}
 			}
-			$db->pquery($insertQuery, array());
+			$db->pquery($insertQuery, $params);
 		}
 
 		if ($updateMappingsList) {
diff --git a/modules/Settings/Profiles/models/Record.php b/modules/Settings/Profiles/models/Record.php
index 899389d13509aded0d655577966678f62f7028ec..dcba26e06511c3114cb9c61d48fc72358da6e916 100644
--- a/modules/Settings/Profiles/models/Record.php
+++ b/modules/Settings/Profiles/models/Record.php
@@ -571,11 +571,13 @@ class Settings_Profiles_Record_Model extends Settings_Vtiger_Record_Model {
 					//Standard permissions
 					$i = 0;
 					$count = count($actionsIdsList);
+                    $params = array();
 					$actionsInsertQuery .= 'INSERT INTO vtiger_profile2standardpermissions(profileid, tabid, operation, permissions) VALUES ';
 					foreach ($actionsIdsList as $actionId => $permission) {
 						$actionEnabled = true;
 						$permissionValue = $this->tranformInputPermissionValue($permission);
-						$actionsInsertQuery .= "($profileId, $tabId, $actionId, $permissionValue)";
+						$actionsInsertQuery .= "(?, ?, ?, ?)";
+                        array_push($params, $profileId, $tabId, $actionId, $permissionValue);
 
 						if ($i !== $count-1) {
 							$actionsInsertQuery .= ', ';
@@ -589,10 +591,12 @@ class Settings_Profiles_Record_Model extends Settings_Vtiger_Record_Model {
 					//Utility permissions
 					$i = 0;
 					$count = count($utilityIdsList);
+                    $params = array();
 					$utilityInsertQuery .= 'INSERT INTO vtiger_profile2utility(profileid, tabid, activityid, permission) VALUES ';
 					foreach($utilityIdsList as $actionId => $permission) {
 						$permissionValue = $this->tranformInputPermissionValue($permission);
-						$utilityInsertQuery .= "($profileId, $tabId, $actionId, $permissionValue)";
+						$utilityInsertQuery .= "(?, ?, ?, ?)";
+                        array_push($params, $profileId, $tabId, $actionId, $permissionValue);
 
 						if ($i !== $count-1) {
 							$utilityInsertQuery .= ', ';
diff --git a/modules/Settings/Roles/models/Record.php b/modules/Settings/Roles/models/Record.php
index 41ebbfe890a541b19c13888f3d727a19b30d9648..f1990bc93c9068455279b10fd5f50f0acf320050 100644
--- a/modules/Settings/Roles/models/Record.php
+++ b/modules/Settings/Roles/models/Record.php
@@ -283,7 +283,7 @@ class Settings_Roles_Record_Model extends Settings_Vtiger_Record_Model {
 	 */
 	public function save() {
 		$db = PearDatabase::getInstance();
-		$roleId = $this->getId();
+		$roleId = Vtiger_Util_Helper::validateStringForSql($this->getId());
 		$mode = 'edit';
 
 		if(empty($roleId)) {
diff --git a/modules/Settings/Workflows/models/ListView.php b/modules/Settings/Workflows/models/ListView.php
index 439468289f10c79e5a20b254c7a1fe95e1715493..e3f704f74b5d0f16ca357759df735539700fdebd 100644
--- a/modules/Settings/Workflows/models/ListView.php
+++ b/modules/Settings/Workflows/models/ListView.php
@@ -52,7 +52,8 @@ class Settings_Workflows_ListView_Model extends Settings_Vtiger_ListView_Model {
 		}
 
 		if(!empty($search_value)) {
-			$listQuery .= ' AND workflowname like "%'.$search_value.'%"';
+			$listQuery .= ' AND workflowname like ?';
+            array_push($params, "%$search_value%");
 		}
 
 		$startIndex = $pagingModel->getStartIndex();
@@ -136,6 +137,7 @@ class Settings_Workflows_ListView_Model extends Settings_Vtiger_ListView_Model {
 		$db = PearDatabase::getInstance();
 
 		$module = $this->getModule();
+        $params = array();
 		$listQuery = 'SELECT count(*) AS count FROM ' . $module->baseTable . ' 
 						INNER JOIN vtiger_tab ON vtiger_tab.name = '. $module->baseTable .'.module_name
 						AND vtiger_tab.presence IN (0,2)';
@@ -143,13 +145,15 @@ class Settings_Workflows_ListView_Model extends Settings_Vtiger_ListView_Model {
 		$sourceModule = $this->get('sourceModule');
 		if($sourceModule) {
 			$listQuery .= " WHERE module_name = '$sourceModule'";
+            array_push($params, $sourceModule);
 		}
 		$search_value = $this->get('search_value');
 		if(!empty($search_value)) {
-			$listQuery .= ' AND workflowname like "%'.$search_value.'%"';
+			$listQuery .= ' AND workflowname like ?';
+            array_push($params, "%$search_value%");
 		}
 
-		$listResult = $db->pquery($listQuery, array());
+		$listResult = $db->pquery($listQuery, $params);
 		return $db->query_result($listResult, 0, 'count');
 	}
 }
\ No newline at end of file
diff --git a/modules/Users/Users.php b/modules/Users/Users.php
index b8c183aa402ddfa8125627c5a15aa6afb7898c19..7488c9d125aeec9675d9fdaccd06ad2d35220d22 100755
--- a/modules/Users/Users.php
+++ b/modules/Users/Users.php
@@ -1316,13 +1316,13 @@ class Users extends CRMEntity {
 				 if($_REQUEST[$this->homeorder_array[$i]] != '')
 				 {
 					$save_array[] = $this->homeorder_array[$i];
-					$qry=" update vtiger_homestuff,vtiger_homedefault set vtiger_homestuff.visible=0 where vtiger_homestuff.stuffid=vtiger_homedefault.stuffid and vtiger_homestuff.userid=".$id." and vtiger_homedefault.hometype='".$this->homeorder_array[$i]."'";//To show the default Homestuff on the the Home Page
-					$result=$adb->pquery($qry, array());
+					$qry=" update vtiger_homestuff,vtiger_homedefault set vtiger_homestuff.visible=0 where vtiger_homestuff.stuffid=vtiger_homedefault.stuffid and vtiger_homestuff.userid=? and vtiger_homedefault.hometype=?";//To show the default Homestuff on the the Home Page
+					$result=$adb->pquery($qry, array($id, $this->homeorder_array[$i]));
 				}
 				 else
 				 {
-					$qry="update vtiger_homestuff,vtiger_homedefault set vtiger_homestuff.visible=1 where vtiger_homestuff.stuffid=vtiger_homedefault.stuffid and vtiger_homestuff.userid=".$id." and vtiger_homedefault.hometype='".$this->homeorder_array[$i]."'";//To hide the default Homestuff on the the Home Page
-					$result=$adb->pquery($qry, array());
+					$qry="update vtiger_homestuff,vtiger_homedefault set vtiger_homestuff.visible=1 where vtiger_homestuff.stuffid=vtiger_homedefault.stuffid and vtiger_homestuff.userid=? and vtiger_homedefault.hometype=?";//To hide the default Homestuff on the the Home Page
+					$result=$adb->pquery($qry, array($id, $this->homeorder_array[$i]));
 				}
 			}
 			if($save_array !="")
@@ -1690,9 +1690,9 @@ class Users extends CRMEntity {
 		$moduleName = $obj->module;
 		$createdRecords = array();
 
-		$tableName = Import_Utils_Helper::getDbTableName($obj->user);
-		$sql = 'SELECT * FROM '.$tableName.' WHERE status = '.Import_Data_Action::$IMPORT_RECORD_NONE;
-		$result = $adb->query($sql);
+		$tableName = Vtiger_Util_Helper::validateStringForSql(Import_Utils_Helper::getDbTableName($obj->user));
+		$sql = 'SELECT * FROM '.$tableName.' WHERE status = ?';
+		$result = $adb->pquery($sql, array(Import_Data_Action::$IMPORT_RECORD_NONE));
 		$numberOfRecords = $adb->num_rows($result);
 		if($numberOfRecords <= 0) {
 			return;
diff --git a/modules/Users/views/Import.php b/modules/Users/views/Import.php
index 55a715cdcafb9a12b2bb1b18efc3a79fdfbd94f3..8da395dd48ece8b8ef692e897d92d43acdb4fdf5 100644
--- a/modules/Users/views/Import.php
+++ b/modules/Users/views/Import.php
@@ -44,7 +44,7 @@ class Users_Import_View extends Vtiger_Import_View {
             $moduleName = $request->getModule();
 
             $user = Users_Record_Model::getCurrentUserModel();
-            $dbTableName = Import_Utils_Helper::getDbTableName($user);
+            $dbTableName = Vtiger_Util_Helper::validateStringForSql(Import_Utils_Helper::getDbTableName($user));
 
             $query = "SELECT recordid FROM $dbTableName WHERE status = ? AND recordid IS NOT NULL";
             $result = $db->pquery($query, array(Import_Data_Action::$IMPORT_RECORD_CREATED));
diff --git a/modules/Vtiger/helpers/Util.php b/modules/Vtiger/helpers/Util.php
index 3d330a5799724d2e1a115e354a580b1bfee20ae7..23b7f18e71a61e4dac0b0a3f55f1f35a1e33481b 100644
--- a/modules/Vtiger/helpers/Util.php
+++ b/modules/Vtiger/helpers/Util.php
@@ -326,6 +326,7 @@ class Vtiger_Util_Helper {
 		}
 		$db = PearDatabase::getInstance();
 
+        $fieldName = Vtiger_Util_Helper::validateStringForSql($fieldName);
 		$primaryKey = Vtiger_Util_Helper::getPickListId($fieldName);
 		$query = 'SELECT '.$primaryKey.', '.$fieldName.' FROM vtiger_'.$fieldName.' order by sortorderid';
 		$values = array();
@@ -361,6 +362,7 @@ class Vtiger_Util_Helper {
 		}
 		$db = PearDatabase::getInstance();
 
+        $fieldName = Vtiger_Util_Helper::validateStringForSql($fieldName);
 		$query = "SELECT $fieldName
 				  FROM vtiger_$fieldName
 					  INNER JOIN vtiger_role2picklist on vtiger_role2picklist.picklistvalueid = vtiger_$fieldName.picklist_valueid
diff --git a/modules/Vtiger/models/Module.php b/modules/Vtiger/models/Module.php
index 43e683c4d14e9a8436a9b9cd4b7ac0a579df74d6..71880524dbe7ddc80f85a1580f619daeee5dda50 100644
--- a/modules/Vtiger/models/Module.php
+++ b/modules/Vtiger/models/Module.php
@@ -1452,7 +1452,9 @@ class Vtiger_Module_Model extends Vtiger_Module {
 	 * @return <String> - query
 	 */
 	public function getSearchRecordsQuery($searchValue,$searchFields, $parentId=false, $parentModule=false) {
-		return "SELECT ".implode(',',$searchFields)." FROM vtiger_crmentity WHERE label LIKE '%$searchValue%' AND vtiger_crmentity.deleted = 0";
+        $db = PearDatabase::getInstance();
+        $query = $db->convert2Sql("SELECT ".implode(',',$searchFields)." FROM vtiger_crmentity WHERE label LIKE ? AND vtiger_crmentity.deleted = 0", array("%$searchValue%"));
+		return $query;
 	}
 
 	/**
@@ -1464,11 +1466,14 @@ class Vtiger_Module_Model extends Vtiger_Module {
 	 * @return <Array of Vtiger_Record_Model>
 	 */
 	public function searchRecord($searchValue, $parentId=false, $parentModule=false, $relatedModule=false) {
+        global $log;
+        $log->fatal('search record api is triggered => ');
 			$searchFields = array('crmid','label','setype');
 		if(!empty($searchValue) && empty($parentId) && empty($parentModule)) {
 			$matchingRecords = Vtiger_Record_Model::getSearchResult($searchValue, $this->getName());
 		} else if($parentId && $parentModule) {
 			$db = PearDatabase::getInstance();
+            $log->fatal('call getSearchRecordsQuery api');
 			$result = $db->pquery($this->getSearchRecordsQuery($searchValue,$searchFields, $parentId, $parentModule), array());
 			$noOfRows = $db->num_rows($result);
 
diff --git a/modules/Vtiger/models/Tag.php b/modules/Vtiger/models/Tag.php
index 25327741d195a47cce325c6415c50b16708f1df9..bb0a01c4daf70565226b73d9784c13b4f1025def 100644
--- a/modules/Vtiger/models/Tag.php
+++ b/modules/Vtiger/models/Tag.php
@@ -276,14 +276,10 @@ class Vtiger_Tag_Model extends Vtiger_Base_Model {
 		$db = PearDatabase::getInstance();
 		$query = "SELECT * FROM vtiger_freetags WHERE (tag=? OR raw_tag=?) AND (owner=? OR visibility=?)";
 		$params = array($name, $name, $userId, self::PUBLIC_TYPE);
-		global $log;
-		$log->fatal($excludedTagId);
 		if($excludedTagId !== false) {
 			$query .= ' AND id != ?';
 			array_push($params, $excludedTagId);
 		}
-		global $log;
-		$log->fatal($db->convert2Sql($query , $params));
 		$result = $db->pquery($query, $params);
 		$tagModel = false;
 		if($db->num_rows($result) > 0) {
diff --git a/modules/Vtiger/views/Import.php b/modules/Vtiger/views/Import.php
index 076a7109ba869f7857156b82a789df40705b8908..21a619a079f379f0270805dc0bf12d2176387fe1 100644
--- a/modules/Vtiger/views/Import.php
+++ b/modules/Vtiger/views/Import.php
@@ -247,7 +247,7 @@ class Vtiger_Import_View extends Vtiger_Index_View {
 		$ownerId = $request->get('foruser');
 
 		$user = Users_Record_Model::getCurrentUserModel();
-		$dbTableName = Import_Utils_Helper::getDbTableName($user);
+		$dbTableName = Vtiger_Util_Helper::validateStringForSql(Import_Utils_Helper::getDbTableName($user));
 
 		if(!$user->isAdminUser() && $user->id != $ownerId) {
 			$viewer->assign('MESSAGE', vtranslate('LBL_PERMISSION_DENIED'));
diff --git a/modules/com_vtiger_workflow/WorkFlowScheduler.php b/modules/com_vtiger_workflow/WorkFlowScheduler.php
index fce3a5fd562370b349682303eaa009da5fe2e2fb..04fbda18cd62da172830aa4951ce6dd1d4b57f82 100755
--- a/modules/com_vtiger_workflow/WorkFlowScheduler.php
+++ b/modules/com_vtiger_workflow/WorkFlowScheduler.php
@@ -57,7 +57,7 @@ class WorkFlowScheduler {
 	public function getEligibleWorkflowRecords($workflow, $start=0, $limit=0) {
 		$adb = $this->db;
 		$query = $this->getWorkflowQuery($workflow, $start, $limit);
-		$result = $adb->query($query);
+		$result = $adb->pquery($query, array());
 		$noOfRecords = $adb->num_rows($result);
 		$recordsList = array();
 		for ($i = 0; $i < $noOfRecords; ++$i) {
diff --git a/pkg/vtiger/modules/Assets/modules/Assets/Assets.php b/pkg/vtiger/modules/Assets/modules/Assets/Assets.php
index ada5a98d13c133ce8ba632948a5c23f13ad3ff0c..ba4c6b8e26914aebdfeb6a319060be3a2607266a 100644
--- a/pkg/vtiger/modules/Assets/modules/Assets/Assets.php
+++ b/pkg/vtiger/modules/Assets/modules/Assets/Assets.php
@@ -415,14 +415,14 @@ class Assets extends CRMEntity {
 		if(getTabid('CustomerPortal') && $assetsTabId) {
 			$checkAlreadyExists = $adb->pquery('SELECT 1 FROM vtiger_customerportal_tabs WHERE tabid=?', array($assetsTabId));
 			if($checkAlreadyExists && $adb->num_rows($checkAlreadyExists) < 1) {
-				$maxSequenceQuery = $adb->query("SELECT max(sequence) as maxsequence FROM vtiger_customerportal_tabs");
+				$maxSequenceQuery = $adb->pquery("SELECT max(sequence) as maxsequence FROM vtiger_customerportal_tabs", array());
 				$maxSequence = $adb->query_result($maxSequenceQuery, 0, 'maxsequence');
 				$nextSequence = $maxSequence+1;
-				$adb->query("INSERT INTO vtiger_customerportal_tabs(tabid,visible,sequence) VALUES ($assetsTabId,1,$nextSequence)");
+				$adb->pquery("INSERT INTO vtiger_customerportal_tabs(tabid,visible,sequence) VALUES (?,?,?)", array($assetsTabId,1,$nextSequence));
 			}
 			$checkAlreadyExists = $adb->pquery('SELECT 1 FROM vtiger_customerportal_prefs WHERE tabid=?', array($assetsTabId));
 			if($checkAlreadyExists && $adb->num_rows($checkAlreadyExists) < 1) {
-				$adb->query("INSERT INTO vtiger_customerportal_prefs(tabid,prefkey,prefvalue) VALUES ($assetsTabId,'showrelatedinfo',1)");
+				$adb->pquery("INSERT INTO vtiger_customerportal_prefs(tabid,prefkey,prefvalue) VALUES (?,?,?)", array($assetsTabId,'showrelatedinfo',1));
 			}
 		}
 	}
diff --git a/pkg/vtiger/modules/CustomerPortal/modules/CustomerPortal/CustomerPortal.php b/pkg/vtiger/modules/CustomerPortal/modules/CustomerPortal/CustomerPortal.php
index e5d64a43b45ad337b7701a3019082eca085769ac..8fdc5bd75d856f5149c305fc56a010dd5edd9b02 100644
--- a/pkg/vtiger/modules/CustomerPortal/modules/CustomerPortal/CustomerPortal.php
+++ b/pkg/vtiger/modules/CustomerPortal/modules/CustomerPortal/CustomerPortal.php
@@ -33,13 +33,13 @@ class CustomerPortal {
 				$tabId = $adb->query_result($tabIdResult, 0, 'tabid');
 				if($tabId) {
 					++$i;
-					$adb->query("INSERT INTO vtiger_customerportal_tabs (tabid,visible,sequence) VALUES ($tabId,1,$i)");
-					$adb->query("INSERT INTO vtiger_customerportal_prefs(tabid,prefkey,prefvalue) VALUES ($tabId,'showrelatedinfo',1)");
+					$adb->query("INSERT INTO vtiger_customerportal_tabs (tabid,visible,sequence) VALUES (?, ?, ?)", array($tabId,1,$i));
+					$adb->query("INSERT INTO vtiger_customerportal_prefs(tabid,prefkey,prefvalue) VALUES (?, ?, ?)", array($tabId,'showrelatedinfo',1));
 				}
 			}
 
-			$adb->query("INSERT INTO vtiger_customerportal_prefs(tabid,prefkey,prefvalue) VALUES (0,'userid',1)");
-			$adb->query("INSERT INTO vtiger_customerportal_prefs(tabid,prefkey,prefvalue) VALUES (0,'defaultassignee',1)");
+			$adb->query("INSERT INTO vtiger_customerportal_prefs(tabid,prefkey,prefvalue) VALUES (?, ?, ?)", array(0,'userid',1));
+			$adb->pquery("INSERT INTO vtiger_customerportal_prefs(tabid,prefkey,prefvalue) VALUES (?, ?, ?)", array(0,'defaultassignee',1));
 
 			// Mark the module as Standard module
 			$adb->pquery('UPDATE vtiger_tab SET customized=0 WHERE name=?', array($moduleName));
diff --git a/pkg/vtiger/modules/EmailTemplates/modules/EmailTemplates/models/ListView.php b/pkg/vtiger/modules/EmailTemplates/modules/EmailTemplates/models/ListView.php
index da1a6d1b75d2cc6021e4a1b05f929c6898203728..94a8e6bcd87058d7f336a6cc2c50be2d1445106b 100644
--- a/pkg/vtiger/modules/EmailTemplates/modules/EmailTemplates/models/ListView.php
+++ b/pkg/vtiger/modules/EmailTemplates/modules/EmailTemplates/models/ListView.php
@@ -207,12 +207,14 @@ class EmailTemplates_ListView_Model extends Vtiger_ListView_Model {
 				$listQuery = $listQuery. ' FROM ' .$split[$i];
 			}
 		}
-		$searchKey = $this->get('search_key');
+		$searchKey = $this->getForSql('search_key');
 		$searchValue = $this->get('search_value');
 
 		$whereQuery .= " WHERE ";
+        $params = array();
 		if(!empty($searchKey) && !empty($searchValue)) {
-			$whereQuery .= "$searchKey LIKE '$searchValue%' AND ";
+			$whereQuery .= "$searchKey LIKE ? AND ";
+            array_push($params, "%$searchValue%");
 		}
 
 		//module should be enabled or module should be empty then allow
@@ -221,10 +223,11 @@ class EmailTemplates_ListView_Model extends Vtiger_ListView_Model {
 
 		$sourceModule = $this->get('sourceModule');
 		if ($sourceModule) {
-			$listQuery .= ' AND vtiger_emailtemplates.module= "' . $sourceModule . '" ';
+			$listQuery .= ' AND vtiger_emailtemplates.module= ?';
+            array_push($params, $sourceModule);
 		}
 
-		$listResult = $db->pquery($listQuery, array());
+		$listResult = $db->pquery($listQuery, $params);
 		return $db->query_result($listResult, 0, 'count');
 	}
 
diff --git a/pkg/vtiger/modules/Import/modules/Import/actions/Data.php b/pkg/vtiger/modules/Import/modules/Import/actions/Data.php
index 3a639a561873a2c163283c73b9c2e172a8a99001..0de1652ab0377b215ddcce5275ab0910ebd502a7 100644
--- a/pkg/vtiger/modules/Import/modules/Import/actions/Data.php
+++ b/pkg/vtiger/modules/Import/modules/Import/actions/Data.php
@@ -196,8 +196,10 @@ class Import_Data_Action extends Vtiger_Action_Controller {
 
 		$createdRecords = array();
 		$entityData = array();
-		$tableName = Import_Utils_Helper::getDbTableName($this->user);
-		$sql = 'SELECT * FROM '.$tableName.' WHERE status = '.Import_Data_Action::$IMPORT_RECORD_NONE;
+		$tableName = Vtiger_Util_Helper::validateStringForSql(Import_Utils_Helper::getDbTableName($this->user));
+        $params = array();
+		$sql = 'SELECT * FROM '.$tableName.' WHERE status = ?';
+        array_push($params, Import_Data_Action::$IMPORT_RECORD_NONE);
 
 		$configReader = new Import_Config_Model();
 		if ($this->batchImport) {
@@ -208,7 +210,7 @@ class Import_Data_Action extends Vtiger_Action_Controller {
 			$sql .= ' LIMIT '. $pagingLimit;
 		}
 
-		$result = $adb->pquery($sql, array());
+		$result = $adb->pquery($sql, $params);
 		$numberOfRecords = $adb->num_rows($result);
 
 		if ($numberOfRecords <= 0) {
@@ -294,7 +296,7 @@ class Import_Data_Action extends Vtiger_Action_Controller {
 					$query = $queryGenerator->getQuery();
 					// to eliminate clash of next record values
 					$queryGenerator->clearConditionals();
-					$duplicatesResult = $adb->query($query);
+					$duplicatesResult = $adb->pquery($query, array());
 					$noOfDuplicates = $adb->num_rows($duplicatesResult);
 
 					if ($noOfDuplicates > 0) {
@@ -823,7 +825,7 @@ class Import_Data_Action extends Vtiger_Action_Controller {
 
 	public function getImportStatusCount() {
 		$adb = PearDatabase::getInstance();
-		$tableName = Import_Utils_Helper::getDbTableName($this->user);
+		$tableName = Vtiger_Util_Helper::validateStringForSql(Import_Utils_Helper::getDbTableName($this->user));
 
 		$focus = CRMEntity::getInstance($this->module);
 		if ($focus && method_exists($focus, 'getGroupQuery')) {
@@ -831,7 +833,7 @@ class Import_Data_Action extends Vtiger_Action_Controller {
 		} else {
 			$query = 'SELECT status FROM '.$tableName;
 		}
-		$result = $adb->query($query, array());
+		$result = $adb->pquery($query, array());
 
 		$statusCount = array('TOTAL' => 0, 'IMPORTED' => 0, 'FAILED' => 0, 'PENDING' => 0, 'CREATED' => 0, 'SKIPPED' => 0, 'UPDATED' => 0, 'MERGED' => 0);
 
diff --git a/pkg/vtiger/modules/Import/modules/Import/helpers/Utils.php b/pkg/vtiger/modules/Import/modules/Import/helpers/Utils.php
index 55b7c396783ee09f1c11087cacdac8718e420f5c..ba3fdd45f285f8312a8a0d1279a4922c6779edf9 100644
--- a/pkg/vtiger/modules/Import/modules/Import/helpers/Utils.php
+++ b/pkg/vtiger/modules/Import/modules/Import/helpers/Utils.php
@@ -121,10 +121,10 @@ class Import_Utils_Helper {
 
 	public static function isUserImportBlocked($user) {
 		$adb = PearDatabase::getInstance();
-		$tableName = self::getDbTableName($user);
+		$tableName = Vtiger_Util_Helper::validateStringForSql(self::getDbTableName($user));
 
 		if(Vtiger_Utils::CheckTable($tableName)) {
-			$result = $adb->query('SELECT 1 FROM '.$tableName.' WHERE status = '.  Import_Data_Action::$IMPORT_RECORD_NONE);
+			$result = $adb->pquery('SELECT 1 FROM '.$tableName.' WHERE status = ?',  array(Import_Data_Action::$IMPORT_RECORD_NONE));
 			if($adb->num_rows($result) > 0) {
 				return true;
 			}
@@ -136,7 +136,7 @@ class Import_Utils_Helper {
 		$adb = PearDatabase::getInstance();
 		$tableName = self::getDbTableName($user);
 
-		$adb->query('DROP TABLE IF EXISTS '.$tableName);
+		$adb->pquery('DROP TABLE IF EXISTS '.$tableName, array());
 		Import_Lock_Action::unLock($user);
 		Import_Queue_Action::removeForUser($user);
 	}
diff --git a/pkg/vtiger/modules/Import/modules/Import/models/ListView.php b/pkg/vtiger/modules/Import/modules/Import/models/ListView.php
index 9e6714f03eefcc93eb989867ac0d575b47850f45..d8b005752839f922b2810590ef8a98b9e87504a0 100644
--- a/pkg/vtiger/modules/Import/modules/Import/models/ListView.php
+++ b/pkg/vtiger/modules/Import/modules/Import/models/ListView.php
@@ -171,7 +171,7 @@ class Import_ListView_Model extends Vtiger_ListView_Model {
 		$db = PearDatabase::getInstance();
 
 		$user = Users_Record_Model::getCurrentUserModel();
-		$userDBTableName = Import_Utils_Helper::getDbTableName($user);
+		$userDBTableName = Vtiger_Util_Helper::validateStringForSql(Import_Utils_Helper::getDbTableName($user));
 
 		$result = $db->pquery('SELECT recordid FROM '.$userDBTableName.' WHERE status NOT IN (?,?) AND recordid IS NOT NULL',Array(Import_Data_Action::$IMPORT_RECORD_FAILED,  Import_Data_Action::$IMPORT_RECORD_SKIPPED));
 		$noOfRecords = $db->num_rows($result);
diff --git a/pkg/vtiger/modules/Import/modules/Import/readers/FileReader.php b/pkg/vtiger/modules/Import/modules/Import/readers/FileReader.php
index 147512ed25aa4f60097a6293b18d9f71cad52086..52f5b3f53c6291c108b48754bfc465ca5a87cea1 100644
--- a/pkg/vtiger/modules/Import/modules/Import/readers/FileReader.php
+++ b/pkg/vtiger/modules/Import/modules/Import/readers/FileReader.php
@@ -102,7 +102,7 @@ class Import_FileReader_Reader {
 	public function createTable() {
 		$db = PearDatabase::getInstance();
 
-		$tableName = Import_Utils_Helper::getDbTableName($this->user);
+		$tableName = Vtiger_Util_Helper::validateStringForSql(Import_Utils_Helper::getDbTableName($this->user));
 		$fieldMapping = $this->request->get('field_mapping');
 
 		$moduleFields = $this->moduleModel->getFields();
@@ -116,7 +116,7 @@ class Import_FileReader_Reader {
 			$columnsListQuery .= $this->getDBColumnType($fieldObject, $fieldTypes);
 		}
 		$createTableQuery = 'CREATE TABLE '. $tableName . ' ('.$columnsListQuery.') ENGINE=MyISAM ';
-		$db->query($createTableQuery);
+		$db->pquery($createTableQuery, array());
 		return true;
 	}
 
diff --git a/pkg/vtiger/modules/Mobile/modules/Mobile/api/ws/RelatedRecordsWithGrouping.php b/pkg/vtiger/modules/Mobile/modules/Mobile/api/ws/RelatedRecordsWithGrouping.php
index f187b3ff0b8ae21574981e6e65313213fe4008c3..1e7a3151841049d2aad50024add7b626f45c49b8 100644
--- a/pkg/vtiger/modules/Mobile/modules/Mobile/api/ws/RelatedRecordsWithGrouping.php
+++ b/pkg/vtiger/modules/Mobile/modules/Mobile/api/ws/RelatedRecordsWithGrouping.php
@@ -48,7 +48,7 @@ class Mobile_WS_RelatedRecordsWithGrouping extends Mobile_WS_QueryWithGrouping {
 			}
 			
 			$query = sprintf("SELECT vtiger_crmentity.crmid, $querySEtype %s", substr($query, stripos($query, 'FROM')));
-			$queryResult = $adb->query($query);
+			$queryResult = $adb->pquery($query, array());
 			
 			// Gather resolved record id's
 			$relatedRecords = array();
diff --git a/pkg/vtiger/modules/Projects/Project/modules/Project/Project.php b/pkg/vtiger/modules/Projects/Project/modules/Project/Project.php
index a431ed28fbe7195c5d8d00240da07d0429140972..8438409e6b46de943066279500eb769ebfd63a74 100644
--- a/pkg/vtiger/modules/Projects/Project/modules/Project/Project.php
+++ b/pkg/vtiger/modules/Projects/Project/modules/Project/Project.php
@@ -343,18 +343,18 @@ class Project extends CRMEntity {
 			if(getTabid('CustomerPortal') && $projectTabid) {
 				$checkAlreadyExists = $adb->pquery('SELECT 1 FROM vtiger_customerportal_tabs WHERE tabid=?', array($projectTabid));
 				if($checkAlreadyExists && $adb->num_rows($checkAlreadyExists) < 1) {
-					$maxSequenceQuery = $adb->query("SELECT max(sequence) as maxsequence FROM vtiger_customerportal_tabs");
+					$maxSequenceQuery = $adb->pquery("SELECT max(sequence) as maxsequence FROM vtiger_customerportal_tabs", array());
 					$maxSequence = $adb->query_result($maxSequenceQuery, 0, 'maxsequence');
 					$nextSequence = $maxSequence+1;
-					$adb->query("INSERT INTO vtiger_customerportal_tabs(tabid,visible,sequence) VALUES ($projectTabid,1,$nextSequence)");
-					$adb->query("INSERT INTO vtiger_customerportal_prefs(tabid,prefkey,prefvalue) VALUES ($projectTabid,'showrelatedinfo',1)");
+					$adb->pquery("INSERT INTO vtiger_customerportal_tabs(tabid,visible,sequence) VALUES (?, ?, ?)", array($projectTabid,1,$nextSequence));
+					$adb->pquery("INSERT INTO vtiger_customerportal_prefs(tabid,prefkey,prefvalue) VALUES (?, ?, ?)", array($projectTabid,'showrelatedinfo',1));
 				}
 			}
 
 			// Add Gnatt chart to the related list of the module
 			$relation_id = $adb->getUniqueID('vtiger_relatedlists');
 			$max_sequence = 0;
-			$result = $adb->query("SELECT max(sequence) as maxsequence FROM vtiger_relatedlists WHERE tabid=$projectTabid");
+			$result = $adb->pquery("SELECT max(sequence) as maxsequence FROM vtiger_relatedlists WHERE tabid=?", array($projectTabid));
 			if($adb->num_rows($result)) $max_sequence = $adb->query_result($result, 0, 'maxsequence');
 			$sequence = $max_sequence+1;
 			$adb->pquery("INSERT INTO vtiger_relatedlists(relation_id,tabid,related_tabid,name,sequence,label,presence) VALUES(?,?,?,?,?,?,?)",
@@ -401,7 +401,7 @@ class Project extends CRMEntity {
 			// Add Gnatt chart to the related list of the module
 			$relation_id = $adb->getUniqueID('vtiger_relatedlists');
 			$max_sequence = 0;
-			$result = $adb->query("SELECT max(sequence) as maxsequence FROM vtiger_relatedlists WHERE tabid=$projectTabid");
+			$result = $adb->pquery("SELECT max(sequence) as maxsequence FROM vtiger_relatedlists WHERE tabid=?", array($projectTabid));
 			if($adb->num_rows($result)) $max_sequence = $adb->query_result($result, 0, 'maxsequence');
 			$sequence = $max_sequence+1;
 			$adb->pquery("INSERT INTO vtiger_relatedlists(relation_id,tabid,related_tabid,name,sequence,label,presence) VALUES(?,?,?,?,?,?,?)",
@@ -555,6 +555,9 @@ class Project extends CRMEntity {
 	/** Function to unlink an entity with given Id from another entity */
 	function unlinkRelationship($id, $return_module, $return_id) {
 		global $log, $currentModule;
+        $id = Vtiger_Util_Helper::validateStringForSql($id);
+        $return_module = Vtiger_Util_Helper::validateStringForSql($return_module);
+        $return_id = Vtiger_Util_Helper::validateStringForSql($return_id);
 
 		if($return_module == 'Accounts') {
 			$focus = CRMEntity::getInstance($return_module);
diff --git a/pkg/vtiger/modules/Projects/ProjectMilestone/modules/ProjectMilestone/ProjectMilestone.php b/pkg/vtiger/modules/Projects/ProjectMilestone/modules/ProjectMilestone/ProjectMilestone.php
index 42991b14f568f18cac1fb7477b48c038e18ce5c4..706bbefab0803ef98f5bb5dd0f0efcf8d1d7c726 100644
--- a/pkg/vtiger/modules/Projects/ProjectMilestone/modules/ProjectMilestone/ProjectMilestone.php
+++ b/pkg/vtiger/modules/Projects/ProjectMilestone/modules/ProjectMilestone/ProjectMilestone.php
@@ -336,11 +336,11 @@ class ProjectMilestone extends CRMEntity {
 			if(getTabid('CustomerPortal')) {
 				$checkAlreadyExists = $adb->pquery('SELECT 1 FROM vtiger_customerportal_tabs WHERE tabid=?', array($projectmilestoneTabid));
 				if($checkAlreadyExists && $adb->num_rows($checkAlreadyExists) < 1) {
-					$maxSequenceQuery = $adb->query("SELECT max(sequence) as maxsequence FROM vtiger_customerportal_tabs");
+					$maxSequenceQuery = $adb->pquery("SELECT max(sequence) as maxsequence FROM vtiger_customerportal_tabs", array());
 					$maxSequence = $adb->query_result($maxSequenceQuery, 0, 'maxsequence');
 					$nextSequence = $maxSequence+1;
-					$adb->query("INSERT INTO vtiger_customerportal_tabs(tabid,visible,sequence) VALUES ($projectmilestoneTabid,1,$nextSequence)");
-					$adb->query("INSERT INTO vtiger_customerportal_prefs(tabid,prefkey,prefvalue) VALUES ($projectmilestoneTabid,'showrelatedinfo',1)");
+					$adb->pquery("INSERT INTO vtiger_customerportal_tabs(tabid,visible,sequence) VALUES (?,?,?)", array($projectmilestoneTabid,1,$nextSequence));
+					$adb->pquery("INSERT INTO vtiger_customerportal_prefs(tabid,prefkey,prefvalue) VALUES (?,?,?)", array($projectmilestoneTabid,'showrelatedinfo',1));
 				}
 			}
 
diff --git a/pkg/vtiger/modules/Projects/ProjectTask/modules/ProjectTask/ProjectTask.php b/pkg/vtiger/modules/Projects/ProjectTask/modules/ProjectTask/ProjectTask.php
index 1fea35246a732ecbcc88b8ef889188c6d0f1b1dc..c48c3e82dc5fb65d0497162200663e00349a00c2 100644
--- a/pkg/vtiger/modules/Projects/ProjectTask/modules/ProjectTask/ProjectTask.php
+++ b/pkg/vtiger/modules/Projects/ProjectTask/modules/ProjectTask/ProjectTask.php
@@ -342,11 +342,11 @@ class ProjectTask extends CRMEntity {
 			if(getTabid('CustomerPortal')) {
 				$checkAlreadyExists = $adb->pquery('SELECT 1 FROM vtiger_customerportal_tabs WHERE tabid=?', array($projecttaskTabid));
 				if($checkAlreadyExists && $adb->num_rows($checkAlreadyExists) < 1) {
-					$maxSequenceQuery = $adb->query("SELECT max(sequence) as maxsequence FROM vtiger_customerportal_tabs");
+					$maxSequenceQuery = $adb->pquery("SELECT max(sequence) as maxsequence FROM vtiger_customerportal_tabs", array());
 					$maxSequence = $adb->query_result($maxSequenceQuery, 0, 'maxsequence');
 					$nextSequence = $maxSequence+1;
-					$adb->query("INSERT INTO vtiger_customerportal_tabs(tabid,visible,sequence) VALUES ($projecttaskTabid,1,$nextSequence)");
-					$adb->query("INSERT INTO vtiger_customerportal_prefs(tabid,prefkey,prefvalue) VALUES ($projecttaskTabid,'showrelatedinfo',1)");
+					$adb->pquery("INSERT INTO vtiger_customerportal_tabs(tabid,visible,sequence) VALUES (?, ?, ?)", array($projecttaskTabid,1,$nextSequence));
+					$adb->pquery("INSERT INTO vtiger_customerportal_prefs(tabid,prefkey,prefvalue) VALUES (?, ?, ?)", array($projecttaskTabid,'showrelatedinfo',1));
 				}
 			}
 
diff --git a/pkg/vtiger/modules/RecycleBin/modules/RecycleBin/models/Module.php b/pkg/vtiger/modules/RecycleBin/modules/RecycleBin/models/Module.php
index d3cdec9291b9990523ca4bd7da2e2ac0b91d2dfe..e24f4040776aa24ce21f5ffb0c6de8f21aebcef5 100644
--- a/pkg/vtiger/modules/RecycleBin/modules/RecycleBin/models/Module.php
+++ b/pkg/vtiger/modules/RecycleBin/modules/RecycleBin/models/Module.php
@@ -134,8 +134,8 @@ class RecycleBin_Module_Model extends Vtiger_Module_Model {
 			}
 		}
 		$this->deleteFiles($recordIds);
-		$db->query('DELETE FROM vtiger_crmentity WHERE deleted = 1');
-		$db->query('DELETE FROM vtiger_relatedlists_rb');
+		$db->pquery('DELETE FROM vtiger_crmentity WHERE deleted = 1', array());
+		$db->pquery('DELETE FROM vtiger_relatedlists_rb', array());
 
 		return true;
 	}
diff --git a/pkg/vtiger/modules/ServiceContracts/modules/ServiceContracts/ServiceContracts.php b/pkg/vtiger/modules/ServiceContracts/modules/ServiceContracts/ServiceContracts.php
index 1f9225c0ecbe6f600d65c26460bbfc9eac012953..d63ec22015fd984cad18cdb1f13697c9d2fc0366 100644
--- a/pkg/vtiger/modules/ServiceContracts/modules/ServiceContracts/ServiceContracts.php
+++ b/pkg/vtiger/modules/ServiceContracts/modules/ServiceContracts/ServiceContracts.php
@@ -390,7 +390,7 @@ class ServiceContracts extends CRMEntity {
 			$adb->pquery("INSERT into vtiger_modentity_num values(?,?,?,?,?,?)",array($adb->getUniqueId("vtiger_modentity_num"),$moduleName,'SERCON',1,1,1));
 
 			// Make the picklist value 'Complete' for status as non-editable
-			$adb->query("UPDATE vtiger_contract_status SET presence=0 WHERE contract_status='Complete'");
+			$adb->pquery("UPDATE vtiger_contract_status SET presence=0 WHERE contract_status=?", array('Complete'));
 
 			// Mark the module as Standard module
 			$adb->pquery('UPDATE vtiger_tab SET customized=0 WHERE name=?', array($moduleName));
@@ -601,6 +601,9 @@ class ServiceContracts extends CRMEntity {
 	/** Function to unlink an entity with given Id from another entity */
 	function unlinkRelationship($id, $return_module, $return_id) {
 		global $log, $currentModule;
+        $id = Vtiger_Util_Helper::validateStringForSql($id);
+        $return_module = Vtiger_Util_Helper::validateStringForSql($return_module);
+        $return_id = Vtiger_Util_Helper::validateStringForSql($return_id);
 
 		if($return_module == 'Accounts') {
 			$focus = CRMEntity::getInstance($return_module);
diff --git a/pkg/vtiger/modules/Tooltip/modules/Tooltip/Tooltip.php b/pkg/vtiger/modules/Tooltip/modules/Tooltip/Tooltip.php
index 806ce55c5874affbc09676d272654226c268cd22..2bf0a7af6e0722ae108e5ba08cba069bc78f0082 100644
--- a/pkg/vtiger/modules/Tooltip/modules/Tooltip/Tooltip.php
+++ b/pkg/vtiger/modules/Tooltip/modules/Tooltip/Tooltip.php
@@ -34,9 +34,10 @@ class Tooltip {
 			$icon = 'quickview.png';
 			$description = 'LBL_TOOLTIP_MANAGEMENT_DESCRIPTION';
 			$links = 'index.php?module=Tooltip&action=QuickView&parenttab=Settings';
-		
-			$adb->query("INSERT INTO vtiger_settings_field (fieldid, blockid, name, iconpath, description, linkto) 
-							VALUES (".$adb->getUniqueID('vtiger_settings_field').", ".getSettingsBlockId($blockname).", '$name', '$icon', '$description', '$links')");
+            $params = array($adb->getUniqueID('vtiger_settings_field'), getSettingsBlockId($blockname), $name, $icon, $description, $links);
+            
+			$adb->pquery("INSERT INTO vtiger_settings_field (fieldid, blockid, name, iconpath, description, linkto) 
+							VALUES (". generateQuestionMarks($params).")", $params);
  		} else if($eventType == 'module.disabled') {
 		// TODO Handle actions when this module is disabled.
 			$moduleInstance = Vtiger_Module::getInstance('Tooltip');
diff --git a/vtlib/Vtiger/Access.php b/vtlib/Vtiger/Access.php
index 83d84025f2f54557da9a6f7275d55940600df606..ea24637d9656d83f4af3d2f5e16f2ba5bf383ff9 100644
--- a/vtlib/Vtiger/Access.php
+++ b/vtlib/Vtiger/Access.php
@@ -69,8 +69,8 @@ class Vtiger_Access {
 	static function initSharing($moduleInstance) {
 		global $adb;
 
-		$result = $adb->query("SELECT share_action_id from vtiger_org_share_action_mapping WHERE share_action_name in
-			('Public: Read Only', 'Public: Read, Create/Edit', 'Public: Read, Create/Edit, Delete', 'Private')");
+		$result = $adb->pquery("SELECT share_action_id from vtiger_org_share_action_mapping WHERE share_action_name in
+			('Public: Read Only', 'Public: Read, Create/Edit', 'Public: Read, Create/Edit, Delete', 'Private')", array());
 
 		for($index = 0; $index < $adb->num_rows($result); ++$index) {
 			$actionid = $adb->query_result($result, $index, 'share_action_id');
diff --git a/vtlib/Vtiger/Deprecated.php b/vtlib/Vtiger/Deprecated.php
index 43e7ec882b73e161ea9840ec03d4adcfe5587057..f574c1c5ae13a1ab39a9b3a86fe13910d8480b81 100644
--- a/vtlib/Vtiger/Deprecated.php
+++ b/vtlib/Vtiger/Deprecated.php
@@ -541,19 +541,19 @@ class Vtiger_Deprecated {
 		global $adb;
 		switch ($module) {
 			case "Invoice":
-				$res = $adb->query("SELECT invoice_no FROM vtiger_invoice WHERE invoiceid = $recordId");
+				$res = $adb->pquery("SELECT invoice_no FROM vtiger_invoice WHERE invoiceid = ?", array($recordId));
 				$moduleSeqNo = $adb->query_result($res, 0, 'invoice_no');
 				break;
 			case "PurchaseOrder":
-				$res = $adb->query("SELECT purchaseorder_no FROM vtiger_purchaseorder WHERE purchaseorderid = $recordId");
+				$res = $adb->pquery("SELECT purchaseorder_no FROM vtiger_purchaseorder WHERE purchaseorderid = ?", array($recordId));
 				$moduleSeqNo = $adb->query_result($res, 0, 'purchaseorder_no');
 				break;
 			case "Quotes":
-				$res = $adb->query("SELECT quote_no FROM vtiger_quotes WHERE quoteid = $recordId");
+				$res = $adb->pquery("SELECT quote_no FROM vtiger_quotes WHERE quoteid = ?", array($recordId));
 				$moduleSeqNo = $adb->query_result($res, 0, 'quote_no');
 				break;
 			case "SalesOrder":
-				$res = $adb->query("SELECT salesorder_no FROM vtiger_salesorder WHERE salesorderid = $recordId");
+				$res = $adb->pquery("SELECT salesorder_no FROM vtiger_salesorder WHERE salesorderid = ?", array($recordId));
 				$moduleSeqNo = $adb->query_result($res, 0, 'salesorder_no');
 				break;
 		}
diff --git a/vtlib/Vtiger/Filter.php b/vtlib/Vtiger/Filter.php
index 217007487a5189cd3e4e37312b1216846a456347..7dcccc1394656c8d1230ef8b588325b42cb36cae 100644
--- a/vtlib/Vtiger/Filter.php
+++ b/vtlib/Vtiger/Filter.php
@@ -281,9 +281,9 @@ class Vtiger_Filter {
 				$cvids[] = $adb->query_result($cvidres, $index, 'cvid');
 			}
 			if(!empty($cvids)) {
-				$adb->pquery("DELETE FROM vtiger_cvadvfilter WHERE cvid  IN (" . implode(',', $cvids) . ")", array());
-				$adb->pquery("DELETE FROM vtiger_cvcolumnlist WHERE cvid IN (" . implode(',', $cvids) . ")", array());
-				$adb->pquery("DELETE FROM vtiger_customview WHERE cvid   IN (" . implode(',', $cvids) . ")", array());
+				$adb->pquery("DELETE FROM vtiger_cvadvfilter WHERE cvid  IN (" . generateQuestionMarks($cvids) . ")", array($cvids));
+				$adb->pquery("DELETE FROM vtiger_cvcolumnlist WHERE cvid IN (" . generateQuestionMarks($cvids) . ")", array($cvids));
+				$adb->pquery("DELETE FROM vtiger_customview WHERE cvid   IN (" . generateQuestionMarks($cvids) . ")", array($cvids));
 			}
 		}
 	}
diff --git a/vtlib/Vtiger/Functions.php b/vtlib/Vtiger/Functions.php
index 840421bb863ddff0ad429d13629530e8651258b6..9dbd03e8959d8c8218d3592030a6c624029bf9d8 100644
--- a/vtlib/Vtiger/Functions.php
+++ b/vtlib/Vtiger/Functions.php
@@ -729,6 +729,8 @@ class Vtiger_Functions {
 
 	static function getSingleFieldValue($tablename, $fieldname, $idname, $id) {
 		global $adb;
+        $fieldname = Vtiger_Util_Helper::validateStringForSql($fieldname);
+        $idname = Vtiger_Util_Helper::validateStringForSql($idname);
 		$fieldval = $adb->query_result($adb->pquery("select $fieldname from $tablename where $idname = ?", array($id)), 0, $fieldname);
 		return $fieldval;
 	}
@@ -955,6 +957,7 @@ class Vtiger_Functions {
 
 	static function getPickListValuesFromTableForRole($tablename, $roleid) {
 		global $adb;
+        $tablename = Vtiger_Util_Helper::validateStringForSql($tablename);
 		$query = "select $tablename from vtiger_$tablename inner join vtiger_role2picklist on vtiger_role2picklist.picklistvalueid = vtiger_$tablename.picklist_valueid where roleid=? and picklistid in (select picklistid from vtiger_picklist) order by sortorderid";
 		$result = $adb->pquery($query, array($roleid));
 		$fldVal = Array();
diff --git a/vtlib/Vtiger/Link.php b/vtlib/Vtiger/Link.php
index c006fb5075b2ab9152f6462249441e7297a1ddc2..5b827368d09f1a3fa84e7ef8d074ec2e642f832b 100644
--- a/vtlib/Vtiger/Link.php
+++ b/vtlib/Vtiger/Link.php
@@ -295,17 +295,21 @@ class Vtiger_Link {
 				$isColumnUpdate = false;
 
 				$sql = 'UPDATE vtiger_links SET ';
+                $params = array();
 				foreach ($linkInfo as $column => $columnValue) {
 					if (in_array($column, $columnsList)) {
 						$columnValue = ($column == 'sequence') ? intval($columnValue) : $columnValue;
-						$sql .= "$column='$columnValue',";
+                        $column = Vtiger_Util_Helper::validateStringForSql($column);
+						$sql .= "$column = ?,";
+                        array_push($params, $columnValue);
 						$isColumnUpdate = true;
 					}
 				}
 
 				if ($isColumnUpdate) {
 					$sql = trim($sql, ',').' WHERE tabid=? AND linkid=?';
-					$db->pquery($sql, array($tabId, $linkId));
+                    array_push($params, $tabId, $linkId);
+					$db->pquery($sql, $params);
 				}
 			}
 		}
diff --git a/vtlib/Vtiger/ModuleBasic.php b/vtlib/Vtiger/ModuleBasic.php
index 3f2adc269493dd5ac7be8815f01784d9661cc92c..4e57fef5745b14c1af2f4c7f3938573016f5e9be 100644
--- a/vtlib/Vtiger/ModuleBasic.php
+++ b/vtlib/Vtiger/ModuleBasic.php
@@ -114,7 +114,7 @@ class Vtiger_ModuleBasic {
 	 */
 	function __getUniqueId() {
 		global $adb;
-		$result = $adb->query("SELECT MAX(tabid) AS max_seq FROM vtiger_tab");
+		$result = $adb->pquery("SELECT MAX(tabid) AS max_seq FROM vtiger_tab", array());
 		$maxseq = $adb->query_result($result, 0, 'max_seq');
 		return ++$maxseq;
 	}
diff --git a/vtlib/Vtiger/Utils.php b/vtlib/Vtiger/Utils.php
index 885e2143b4796e141372d4ef432bc882f7087188..452ea7ab364261a4ab2724c29b999c8565ea7668 100644
--- a/vtlib/Vtiger/Utils.php
+++ b/vtlib/Vtiger/Utils.php
@@ -171,6 +171,7 @@ class Vtiger_Utils {
 	static function CreateTable($tablename, $criteria, $suffixTableMeta=false) {
 		global $adb;
 
+        $tablename = Vtiger_Util_Helper::validateStringForSql($tablename);
 		$org_dieOnError = $adb->dieOnError;
 		$adb->dieOnError = false;
 		$sql = "CREATE TABLE " . $tablename . $criteria;
@@ -196,6 +197,7 @@ class Vtiger_Utils {
 	 */
 	static function AlterTable($tablename, $criteria) {
 		global $adb;
+        $tablename = Vtiger_Util_Helper::validateStringForSql($tablename);
 		$adb->query("ALTER TABLE " . $tablename . $criteria);
 	}
 
@@ -220,6 +222,7 @@ class Vtiger_Utils {
 	 */
 	static function TableHasForeignKey($tablename, $key) {
 		$db = PearDatabase::getInstance();
+        $tablename = Vtiger_Util_Helper::validateStringForSql($tablename);
 		$rs = $db->pquery("SELECT 1 FROM information_schema.TABLE_CONSTRAINTS WHERE CONSTRAINT_TYPE = 'FOREIGN KEY' AND TABLE_SCHEMA = ? AND TABLE_NAME = ? AND CONSTRAINT_NAME = ?", array($db->dbName, $tablename, $key));
 		return $db->num_rows($rs) > 0 ? true : false;
 	}
@@ -246,6 +249,7 @@ class Vtiger_Utils {
 	static function CreateTableSql($tablename) {
 		global $adb;
 
+        $tablename = Vtiger_Util_Helper::validateStringForSql($tablename);
 		$create_table = $adb->pquery("SHOW CREATE TABLE $tablename", array());
 		$sql = decode_html($adb->query_result($create_table, 0, 1));
 		return $sql;