PHP从mysql中选择不起作用

时间:2014-04-09 20:37:01

标签: php mysql

这段代码有什么问题?我已经尝试了一切来尝试解决它。​​

$sql9 = "SELECT * FROM like WHERE postid='$pid' AND userid='$userid'";
$result9=mysql_query($sql9);

if($result9){
echo "It worked!";
}

3 个答案:

答案 0 :(得分:6)

你的桌子名称是reserved word,你必须在它周围使用它:

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();

答案 1 :(得分:0)

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

$sql9 = "SELECT * FROM `like` WHERE postid='$pid' AND userid='$userid'";
$result9=mysql_query($sql9);

if($result9){
echo "It worked!";
}

答案 2 :(得分:0)

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