【发布时间】:2014-05-23 09:25:08
【问题描述】:
我有两个函数:checkDatabase($name) 和 add。
第一个检查传递的名称是否已经在数据库中。下一个添加如果尚未在数据库中。这是我的代码:
public function checkDatabase($name) {
$list = $this->data_model->getCommunityList();
foreach ($list as $sites) {
if ($sites->name == $name) {
return $name;
}
}
return false;
}
public function add(){
$names = $this->input->post('add-list');
if ($names != '') {
if (strpos($names, "\n") == TRUE ) { //newline found
$names = $this->input->post('add-list');
$namesArray = explode("\n", $names);
foreach($namesArray as $name) {
$checker = "";
$checker = $this->checkDatabase($name);
if ($checker == $name) {
echo "<script type='text/javascript'>alert('A site in your list already exists. Duplicate sites are not allowed.');</script>";
}
else {
$this->data_model->addCommunity($name);
}
}
$this->index();
redirect(base_url());
}
}
}
我的模特:
public function addCommunity($name){
$names = $this->db->escape_str($name);
$sql = "INSERT INTO community (name) VALUES ('$name');";
$query = $this->db->query($sql);
return $query;
}
我的桌子:
问题是我的函数仍然在数据库中添加名称,即使它已经存在。即使 SQL 表显示“唯一”,我的查询仍然接受我的输入。我的代码有什么问题?请帮忙!!!
【问题讨论】:
-
我们能看到调用函数的代码吗?另外,您是否有创建表的 SQL 脚本以便我们查看约束?
-
请分享你的模型
-
@Jenz 更新了问题
-
这里:foreach ($list as $sites) { if ($sites->name == $name) { return $name; } }..please var_dump(sites->name,$name)
标签: php database codeigniter controller