PHP MySQL Query не работает, но работает с терминала

Вот мой код:

$gid = (int) stripslashes($_POST['id']); echo $gid; 

$ db = dbConnect (); $ test = $ db-> query ('набор игр для воспроизведения играл = играл + 1, где id = "$ gid"'); echo $ db-> ошибка; echo $ db-> errno; умереть(); } Он отлично работает с терминалом, и он правильно выводит $ gid, и никаких ошибок не возвращается. Я пропустил что-то действительно очевидное?

Solutions Collecting From Web of "PHP MySQL Query не работает, но работает с терминала"

Вы включаете запрос в одинарные кавычки. А в одинарных кавычках переменная интерполяция (также называемая заменой) не происходит.

Простой пример:

 $who = 'harry potter'; echo 'hi "$who"'; // prints hi "$who" echo "hi '$who'"; // prints hi 'harry potter' 

Измените свой код как:

 $test = $db->query("update games set played = played + 1 where id = '$gid'"); 

Также из строки: $gid = (int) stripslashes($_POST['id']); ясно, что $gid является целым числом, и нет необходимости заключать его в кавычки в вашем запросе. Таким образом, мы имеем:

 $test = $db->query("update games set played = played + 1 where id = $gid"); 
 $test = $db->query("UPDATE `games` SET `played` = `played` + 1 WHERE `id` = '" . $gid . "'"); 

ничего в одинарных кавычках не анализируется. do id="' . $gid . '"

альтернативно оберните всю вещь в двойные кавычки и поставьте одинарные кавычки вокруг $ gid.

пытаться

 $test = $db->query (" UPDATE `games` SET `played` = (`played` + 1) WHERE `id` ='" . $gid . "' ");