0

値が DB にあるかどうかを確認する必要があります。私は使っている

$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 {}.

それは可能ですか?値が既に内部にあるかどうかを確認する回避策はありますか?

4

2 に答える 2

1

これを試して、

A SELECT query never insert any value to the DB If the data's are inserting in the table its should be somewhere else. Also instead of checking $id value you can check numrows as below.

$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);
$db->query();
if($db->getNumRows() >0){
 //Data found
}
else{
 //Nod Data found
}

Hope it helps..

于 2013-11-12T07:32:31.067 に答える