Я работаю в WordPress и хочу вставить строку только в том случае, если она не существует, и если она существует от текущего пользователя, я хочу обновить ее новым значением. Ниже код не выводит никаких результатов или null на вызов ajax, и консоль также не показывает никаких ошибок. Если я запустил alonge запроса обновления вставки, они работают, но когда они используются вместе, они не показывают никакого результата. Я использовал ajax, чтобы просто передать результат в div. Поэтому я просто вставляю php-код здесь.обновление, если существует или вставить, если не существует в wordpress
PHP код
add_action('wp_ajax_star', 'star');
add_action('wp_ajax_nopriv_star', 'star');
function star()
{
//variables
$user_info = wp_get_current_user();
$user=$user_info->user_login;
$passedvalue = $_POST['clickval'];
$competition = $_POST['compete'];
$aid = $_POST['foo'];
global $wpdb;
//$sqll = "SELECT zvotes.zvotes FROM zvotes WHERE zvotes.votedby = '$user' && zvotes.zcompetition = '$competition'";
$previous = $wpdb->get_var("SELECT zvotes.zvotes FROM zvotes WHERE zvotes.votedby = '$user' && zvotes.zcompetition = '$competition'");
if(count($previous)>0){
$wpdb->update('zvotes', array('zvotes'=>$passedvalue), array('votedby'=>$user, 'competition'=>$competition));
echo json_encode("there is a previous entry");die();}
$wpdb->insert(
'zvotes',
array(
'zvotes' => $passedvalue,
'zcompetition' => $competition,
'aid' => $aid,
'votedby' => $user
));
echo json_encode("insert works");die();
}
он назван UPSERT. Google, чтобы помочь – splash58
@ splash58 ... вы думаете, что он может достичь того, что мне нравится вставить, только если нет строки и если найдено только обновление. Можете ли вы поделиться основным синтаксисом, потому что я застрял и пытался в течение двух часов – Zlogic
http://dev.mysql.com/doc/refman/5.6/en/insert-on-duplicate.html – splash58