PHP从mysql中选择不起作用


PHP Select from mysql not working

此代码有什么问题?我已经尽了一切努力来修复它。

$sql9 = "SELECT * FROM like WHERE postid='$pid' AND userid='$userid'";
$result9=mysql_query($sql9);
if($result9){
echo "It worked!";
}

您的表名是一个保留字您必须使用反勾号:

SELECT * FROM `like` WHERE postid='$pid' AND userid='$userid'

此外,您应该避免使用mysql_*,这是一个不推荐使用的库,并将MySQLi或PDO与准备好的语句一起使用,以避免SQL注入。

以下是使用PDO:的示例

$sql = "SELECT * 
          FROM `like` 
         WHERE postid = :postId AND 
               userid = :userId";
$result = $con->prepare($sql);
$result->bindParam(':postId', $pid, PDO::PARAM_INT);
$result->bindParam(':userId', $userid, PDO::PARAM_INT);
$result->execute();

您不能将任何关键字用作表。请尝试使用表的其他名称。

您必须用引号将like括起来,因为like是mysql的保留关键字。因此mysql会将其视为LIKE子句
查询应该如下所示。

$sql9 = "SELECT * FROM `like` WHERE postid='$pid' AND userid='$userid'";
$result9=mysql_query($sql9);
if($result9){
echo "It worked!";
}