Estoy atascado con esta función multi_query. Me gustaría que ambas consultas se ejecuten juntas. Actualmente, muestra [{"result": 0}] que no debería ser el caso.

$query = "update forumjob set likes=likes+1 where articleid='$articleid'";
$query .= "insert into job_likes(username,articleid) values ('".addslashes($username)."','".addslashes($articleid)."')";
$result = mysqli_multi_query($conn, $query);

if (!$result){
    $json_out = "[" . json_encode(array("result"=>0)) . "]";        
}
else {
    $json_out = "[" . json_encode(array("result"=>1)) . "]";        
}

echo $json_out;

$conn->close();
-2
Grappyzxc 15 dic. 2016 a las 11:08

2 respuestas

La mejor respuesta

Al comprobar la función "mysqli_multi_query" (http://php.net/manual/ es / mysqli.multi-query.php):

Returns FALSE if the first statement failed.

Al verificar su consulta:

$query = "update forumjob set likes=likes+1 where articleid='$articleid'";

La consulta anterior no finaliza. Consulte el ejemplo en el enlace proporcionado (biblioteca PHP arriba).

$query  = "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";

Así que cambia esto:

$query = "update forumjob set likes=likes+1 where articleid='$articleid'";

A esto:

$query = "update forumjob set likes=likes+1 where articleid='$articleid';";
1
Ronald 15 dic. 2016 a las 08:17

Agregue un punto y coma al final de cada instrucción SQL.

$query = "update forumjob set likes=likes+1 where articleid='$articleid';";
-1
Joe Horn 15 dic. 2016 a las 08:13