1

カスタムモジュールを作成しようとしていますが、SQLアクセスを取得しようとしています。

しかし、私は取得し続けます

mysql_query()[function.mysql-query]:14行目の/home/scripts/public_html/crm/modules/PcPal/book-engineer.phpのユーザー'scripts' @'localhost'(パスワード:NOを使用)のアクセスが拒否されました

シュガーモジュールを作成するときにデータベースのデータにアクセスするにはどうすればよいですか?

<?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);
}


?>
4

2 に答える 2

2

このような非常に一般的なクエリにはBeanメソッドを使用することを検討する必要があります。これは、より簡単で移植性が高いためです。

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

于 2012-09-27T15:30:24.513 に答える
2

データベースアクションを実行するためにglobalオブジェクトを使用します。 モジュールBean(例:)がある場合は、の代わりに使用できます。 また、テーブルからフェッチするときは、削除されたアイテムがとしてマークされるため、常にを使用します。$db
$bean = new Contact();$bean->dbglobal $db
deleted = 01

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);
}
于 2012-09-27T15:10:08.870 に答える