如果数据库条目存在,我怎样才能最快地检查?我使用这个代码:
$exists = db_query('SELECT tid FROM {taxonomy_index} WHERE tid = 1 AND nid = 1 LIMIT 1');
if($exists->rowCount() > 0){
drupal_set_message("exists");
}
如果数据库条目存在,我怎样才能最快地检查?我使用这个代码:
$exists = db_query('SELECT tid FROM {taxonomy_index} WHERE tid = 1 AND nid = 1 LIMIT 1');
if($exists->rowCount() > 0){
drupal_set_message("exists");
}
我会做:
$result = db_select('taxonomy_index', 'ti')
->fields('ti', array('tid'))
->condition('tid', 1)
->condition('nid', 1)
->range(0, 1)
->execute()
->rowCount();
if ($result) {
drupal_set_message(t('Exists'));
}
与您的问题无关,但您应该始终使用占位符来防止 SQL 注入 - 尽管如果您使用上面的查询构建器,那么它会为您处理。此外,在将文本写入屏幕时,您应该始终使用 t() 函数。
db_select()
比db_query()
. 请参阅此线程db_select()
以了解更适合的场景db_query()
。
db_query()->fetchField()
是最简单的方法。请参阅以下代码段:
// Returns string(5) "admin"
var_dump(db_query('select name from {users} where uid = 1')->fetchField());
// Returns bool(false)
var_dump(db_query('select name from {users} where uid = -1')->fetchField());