Php 为什么在使用pdo连接到数据库时显示错误?

Php 为什么在使用pdo连接到数据库时显示错误?,php,pdo,mysqli,Php,Pdo,Mysqli,我试着靠着PDO。这是我的示例代码 <?php $dbname = "procedure_testing"; $dbuser = "root"; $dbpass = "mypass"; $host="localhost"; try { $conn = new PDO('mysql:host=localhost;dbname=$dbname', $dbuser, $dbpass); $id=3; $stmt = $conn->prepare('SELECT

我试着靠着PDO。这是我的示例代码

<?php
$dbname     = "procedure_testing";
$dbuser     = "root";
$dbpass     = "mypass";
 $host="localhost";
try {
$conn = new PDO('mysql:host=localhost;dbname=$dbname', $dbuser, $dbpass);
$id=3;
 $stmt = $conn->prepare('SELECT * FROM salary WHERE empid = :empid');
$stmt->execute(array('empid' => $id));

$result = $stmt->fetchAll();

if ( count($result) ) { 
foreach($result as $row) {
  print_r($row);
}   
} else {
echo "No rows returned.";
}
} catch(PDOException $e) {
 echo 'ERROR: ' . $e->getMessage();
}

?>
但我得到了以下错误:

分析错误:语法错误,第10行的C:\xampp\htdocs\pdo_example\select.php中出现意外的T_变量


我不知道是什么问题。有人能帮我检查一下代码吗?

你快到了,忘了:


另外,在创建PDO对象时使用单引号,则变量的分析不正确。将其更改为双引号或转义变量。根据您的答案,我在empid前面使用了:并使用了双引号。但仍然面临同样的问题。
$stmt = $conn->prepare('SELECT * FROM salary WHERE empid = :empid');
$stmt->execute(array(':empid' => $id)); //notice : in front of empid.