COUNT MySQL解析“意外'$结果'(T_VARIABLE)”

时间:2014-01-06 19:25:01

标签: php mysql parsing count

我正在一个基本网站上工作,该网站为度假国家提供建议。 首先,您喜欢某些国家,然后它会“计算”哪些国家/地区最适合您。 问题是,起初我忘记了起初人们不止一次地喜欢一个国家。为了防止我提出这个代码:

<?php
$db_host = "localhost"; 
$db_username = "root";
$db_pass = ""; 
$db_name = "project"; 


$con = mysqli_connect("$db_host","$db_username","$db_pass","$db_name") or die ("could not connect to mysql");

$countryID = $_GET["country"];

$user = $_GET["user"];

$query = "SELECT COUNT(userID) AS identicalLikes FROM likes WHERE userID=".$user." AND countryID=".$countryID.";" // Counts how many times this country is already liked by this user

$result = mysqli_query($con, $query);
$row = mysqli_fetch_array($result);
$identicalLikes = $row['identicalLikes'];
?>

然后我检查这个数字是否为零,所以我知道是否应该将它添加到我的数据库中,或者不是(因为它已经存在)。

我已经完成了一些研究,我知道解析是什么。但是因为我不知道问题是在我的查询中还是在解析中。

有人知道我做错了什么或有更好的建议吗? 制作布尔数据库不是一种选择,因为当更多用户加入该网站时,其内容将变得非常难。

1 个答案:

答案 0 :(得分:2)

您在$ sql定义的末尾忘记了;

$query = "SELECT [...snip...] countryID=".$countryID.";"; // Counts [..snip...]
                                                        ^---here

引用的分号(";")是SQL语句的一部分,并且不会为PHP终止此行。

同样,你很容易受到SQL injection attacks的攻击并且没有引用你插入的值(假设它们是字符串),所以即使修复了这个PHP语法错误,你的SQL仍然会从根本上解决碎。