我正在使用codeigniter和postgresql创建一个web应用程序。我的数据库里有这个:
user
id name
unique(name)
当有人试图用相同的名字注册时,我会得到一个错误。我如何处理它们,而不显示代码点火器的错误和显示我的自定义错误?如果我设置了$db['default']['db_debug'] = FALSE;
,我当然不会得到任何错误,但是是否有一种方法来处理db错误,或者我是否应该检查一下表中是否已经包含了一个具有相同名称的条目?
发布于 2014-10-10 01:50:09
我不知道任何代码点火器,但我会假设这个原则是一样的:
首先进行类似于SELECT id FROM tablename WHERE name='SomeName' LIMIT 1
的查询,然后检查行数。这种检查是相当正常的。尽你所能(理智地)控制,以避免今后的错误。
零排?插入安全。不是零排?显示类似于“用户名已取”之类的内容。
使用一些代码的示例:
$check = mysqli_query("SELECT id FROM tablename WHERE name='SomeName' LIMIT 1");
if( $check->num_rows!==0 ){
echo 'Username allready taken'; // echo is bad, you should process this better, but this is easy demo
}
else{
// Your normal inserting code goes here.
}
发布于 2015-05-05 08:12:56
使用Codeigniters表单验证类。is_uniquetable.columnName。这将为你做这件事。下面是一个例子
$this->form_validation->set_rules('name', 'Name', 'is_unique[table_name.Name]');
然后,只需设置引用is_unique验证的自定义消息,如下所示
$this->form_validation->set_message('is_unique', 'Name already exists');
发布于 2014-10-10 02:46:32
https://stackoverflow.com/questions/26297374
复制