php变量导致我的sql查询失败,但是将相同的值硬编码到查询中是可行的,这是为什么呢?

chy5wohz  于 2021-06-17  发布在  Mysql
关注(0)|答案(1)|浏览(275)

这个问题在这里已经有答案了

php中单引号字符串和双引号字符串的区别是什么(12个答案)
两年前关门了。
我在php中的一个sql查询中遇到了一个非常奇怪的问题。基本上我有以下php代码:

<?php include 'db.php'; 
$sql = 'SELECT EventID FROM teams WHERE Volunteer2ID=4';
$result = $conn->query($sql);
 if ($result->num_rows > 0) {
      //perform some action with the results.
 } else {
      echo "No event to display";
 }

?>

它返回我期望的结果,但是我不能总是在4中搜索志愿2id,所以我想使用一个变量,这就是问题的开始,每次我使用一个变量而不是仅仅4,查询失败并且没有结果返回。例如,以下代码失败:

<?php include 'db.php'; 
$volID = 4;
//echo $volID;
$sql = 'SELECT EventID FROM teams WHERE Volunteer2ID=$volID';
$result = $conn->query($sql);
 if ($result->num_rows > 0) {
      //perform some action with the results.
 } else {
      echo "No event to display";
 }

?>

有人知道我为什么会遇到这个问题吗?我找到的每个可能的解决方案都表示查询中的某个地方有错误,但是我的失败与我的工作失败是相同的,我找不到任何其他方法来解决这个问题。

9rbhqvlz

9rbhqvlz1#

如果使用单引号字符串,请使用双引号字符串“”而不是单引号“”,或者使用带变量的字符串串联。

<?php include 'db.php'; 
$volID = 4;
//echo $volID;
$sql = "SELECT EventID FROM teams WHERE Volunteer2ID=$volID";
//OR $sql ='SELECT EventID FROM teams WHERE Volunteer2ID=' . $volID;
$result = $conn->query($sql);
 if ($result->num_rows > 0) {
      //perform some action with the results.
 } else {
      echo "No event to display";
 }

?>

相关问题