php - SQL选择查询使用变量来获取行

标签 php mysql

我有一个表格,在名为“星期一”、“星期二”等的表格“个人资料”的单独列中列出了一周中每一天的事件。我想通过将变量 $day 设置为 date("l") 来加载该数据,该变量应该返回星期几。我的数据库连接工作正常,当我将特定日期添加到获取数组时,查询会加载星期几,例如 - $row['monday'] 显示星期一的事件;。当我尝试使用变量 $day 加载关联的日期 $row['$day'] 时,结果为 0。如何使用我的变量加载该列的结果。 - 如果今天是星期二,当我输入用户名和密码时,星期二列将从该用户行加载。

  <form action="" method="post" role="form">
 <div class="form-group">
 <label for="username">User Name:</label>
 <input type="username" class="form-control" name="userName">
 </div>
 <div class="form-group">
 <label for="pin">Pin:</label>
 <input type="pin" class="form-control" name="pin">
 </div>


 <button type="submit" name="submit"  
 class="btn btn default">Submit</button>
 </form> 


 <?php 
 $day = date("l");   

 if(isset($_POST['submit']))
 {



 include('util.php'); 



 $userName = $_POST['userName']; 
 $pin = $_POST['pin']; 

 $sql = "SELECT * FROM profile WHERE userName = '$userName' 
 AND pin = '$pin'";
 $result = $conn->query($sql);

 if ($result->num_rows > 0) {
 // output data of each row
 while($row = $result->fetch_assoc()) {
    echo "Activity: " . $row['$day']. "<br>" ;
 }
 } else {
 echo "0 results";
 }
 $conn->close();



 }

 ?>
<小时/>

最佳答案

变量不会在 single-quoted strings 中展开。所以当你这样做时:

$row['$day']

您实际上是在查找名为“$day”的列,该列在该行中不存在。你可以这样做:

$row["$day"]

这会扩展变量。但这并不是真正必要的。该变量本身就是您要使用的字符串,因此只需按原样使用即可:

$row[$day]

关于php - SQL选择查询使用变量来获取行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30689254/

相关文章:

php - 如何避免冲突用于依赖注入(inject)的 PHP 特性

php - 导航菜单在 CodeIgniter 中无法正常工作

mysql - 内连接查询 n :m

php - 两个查询,两个不同的表,只有一个循环

PHP 和 Smarty 错误 : Trying to get property of non-object

php - MySQL在一个事务中从多对多表中删除和删除

javascript - 使用Ajax、PHP上传PDF文件到MYSQL数据库

php - 防止访问者每天发布超过 2 个帖子的方法(PHP MySQL)

query_posts 后 MySQL 错误 "Query execution was interrupted"

PHP foreach 列格式