变量调用在sql语句中不起作用

时间:2016-06-11 14:44:52

标签: php

如果我把

$sql1 = 'Select * from follow WHERE followmak = $usid';

它不起作用

每当我把

$sql1 = 'Select * from follow WHERE followmak = 1';

1或其中的任何基数。我试图回应$ usid并且它有效,但我想知道为什么它在sql语句中不起作用,请帮助我,我是PHP的菜鸟

我的完整代码如下:     

try {
    $pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);

     $sql = 'SELECT * from follow';


    $q = $pdo->query($sql);

    $q->setFetchMode(PDO::FETCH_ASSOC);
     $usid = ($row7['userID']);
     $sql1 = 'Select * from follow WHERE followmak = $usid';



     $q1 = $pdo->prepare($sql1);
    $q1->execute([$usid]);
    $q1->setFetchMode(PDO::FETCH_ASSOC);






} catch (PDOException $e) {
    die("Could not connect to the database $dbname :" . $e->getMessage());
}

?> 

3 个答案:

答案 0 :(得分:0)

尝试使用双引号,

$sql1 = "Select * from follow WHERE followmak = $usid";

使用单引号(')和双引号(")之间存在差异。 使用单引号,php会将其解释为字符串,而使用双“php”会将变量的值显示为字符串。

答案 1 :(得分:0)

PHP '(单引号)和"(双引号)的工作原理如下。 如果你把一个变量放在单引号中,它会将它视为普通字符串,如果你把一个变量放在双引号中,它会把它当作一个变量。 check this link

所以你的例子

$sql1 = 'Select * from follow WHERE followmak = $usid'; 

$ userid在这里不是变量,而是普通字符串,你的正确查询应该是

$sql1 = "Select * from follow WHERE followmak = $usid";

答案 2 :(得分:0)

试试这个

$sql1 = "Select * from follow WHERE followmak = '$usid'";