从自定义模块访问数据库

时间:2012-09-27 15:00:38

标签: sugarcrm

我正在尝试创建一个自定义模块,我正在尝试获取MY SQL。

但我一直在

  

mysql_query()[function.mysql-query]:拒绝用户访问   'scripts'@'localhost'(使用密码:NO)in   /home/scripts/public_html/crm/modules/PcPal/book-engineer.php上线   14

制作糖模块时如何访问数据库中的数据?

<?php if(!defined('sugarEntry') || !sugarEntry) die ('Not A valid Entry point'); ?>

<h2>Book an Engineer</h2>

<form method="POST" >
Search Last Name : <input type="text"  name="frm_last_name_search" value="<?php echo $_POST['frm_last_name_search']; ?>" />

<input type="submit"  value="Search"/>
</form>

<?php
$sql = 'SELECT first_name, last_name, primary_address_street FROM contacts WHERE last_name = \''.$_POST['frm_last_name_search'].'\'';

$results = mysql_query($sql);

while($this_result = mysql_fetch_array($result))
{
  print_r($this_result);
}


?>

2 个答案:

答案 0 :(得分:2)

使用global对象$db执行数据库操作 如果您有模块bean,例如:$bean = new Contact();,则可以使用$bean->db代替global $db
此外,从表中提取时始终使用deleted = 0,因为已删除的项目标记为1

global $db;
$sql = "SELECT first_name, last_name, primary_address_street FROM contacts 
WHERE last_name = '{$db->quote($_POST['frm_last_name_search']}' AND deleted = 0";

$rs = $db->query($sql);

while($row = $db->fetchByAssoc($rs))
{
  print_r($row);
}

答案 1 :(得分:2)

您应该考虑将bean方法用于非常常见的查询,因为它更容易,更便携。

http://developers.sugarcrm.com/wordpress/2012/03/23/howto-using-the-bean-instead-of-sql-all-the-time/