Here's my code:$gid = (int) stripslashes($_POST['id']);
echo $gid;
$db = dbConnect();
$test = $db->query('update games set played = played + 1 where id = "$gid"');
echo $db->error;
echo $db->errno;
die();
}
It works fine from the terminal, and it correctly prints out $gid, and no errors are returned. Am I missing something really obvious?
解决方案
You are enclosing the query in single quotes. And in single quotes variable interpolation(also called substitution) does not happen.
Simple example:
$who = 'harry potter';
echo 'hi "$who"'; // prints hi "$who"
echo "hi '$who'"; // prints hi 'harry potter'
Change your code as:
$test = $db->query("update games set played = played + 1 where id = '$gid'");
Also from the line: $gid = (int) stripslashes($_POST['id']); its clear that $gid is an integer and there is not need to enclose it in quotes in your query. So we have:
$test = $db->query("update games set played = played + 1 where id = $gid");