【发布时间】:2013-11-12 07:15:59
【问题描述】:
我需要检查一个值是否在数据库中。我正在使用
$db = JFactory::getDBO();
$query = $db->getQuery( true );
$query->select($db->quoteName('id'));
$query->from($db->quoteName('#__tablename'));
$query->where($db->quoteName('fieldname') . ' = ' . $db->quoteName($valuetocheck));
$db->setQuery($query);
$id = $db->loadResult();
echo "value = " . $id;
if($id) {/*action if the value already exists*/} else {/*...*/}
问题是我设置为$valuetocheck 的每个新值实际上都被插入到表中。如果我设置了一个尚不存在的值,它会被插入,所以我总是得到一个有效的$id,并且无法继续到else {}。
这可能吗?是否有任何解决方法来检查一个值是否已经在里面?
【问题讨论】:
-
尝试在
$db->setQuery($query);这一行之前打印$query,看看你会得到什么。如果是选择查询,那么它肯定不会插入数据。 -
查询将不插入任何值,并且您专门使用了
select。值可能正在被另一个查询插入某处
标签: php mysql select joomla joomla2.5