doujingdai5521
doujingdai5521
2016-06-11 14:44

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

已采纳

This question already has an answer here:

if i put

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

it does not work

and whenever I put

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

1 or any cardinal number it works out. I tries to echo $usid and it works and but I wonder why it does not work in sql statement , please help me I am noob in PHP

My Full Code is given below :

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条回答

  • doucu9677 doucu9677 5年前

    Try using double quote,

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

    There's a difference between using single quot (') and double quot ("). using single quot, php will interpret it as string while using double quot php will display the value of the variable into a string.

    点赞 评论 复制链接分享
  • douquan1953 douquan1953 5年前

    Try this

    $sql1 = "Select * from follow WHERE followmak = '$usid'";
    
    点赞 评论 复制链接分享
  • douduoting8408 douduoting8408 5年前

    The PHP '(single quote) and "(double quote) works like this. if you put a variable in single quote it will treat it as normal string and if you put a variable in double quote it will treat it as a variable. check this link

    so for your example

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

    $userid is not variable here instead it is normal string and your correct query should be

    $sql1 = "Select * from follow WHERE followmak = $usid";
    
    点赞 评论 复制链接分享

相关推荐