php - PHP 初学者 -Where 子句

标签 php mysql where-clause

我对 php 很陌生,想知道我的 where 子句是否正确,我认为我在 where 子句中遗漏了一些东西。请看下面:

<?php
$val1 = $_SESSION['dbase_user']['id'];

$gen = "SELECT gender FROM tbl_users WHERE id = $val1";
$result1 = dbQuery($gen);
$row1 = dbFetchAssoc($result1);
?>

<tr>
<td width="180" height="30" class="label"><strong>Gender</strong></td>
<td height="30" class="content">
<input type="text" class="frmInputs" size="10" value="<?php echo strtoupper($row1['gender']) ?>" disabled="disabled"/></td>
</tr>

输出:它总是获取数据库中第一行的第一个性别。

问题:我希望它根据我的 where 子句指向其他记录。

注释和尝试的场景:

  1. Id 是我的数据库中的主键 <--- ID 是 int
  2. 我还尝试使用 WHERE fname = $val1 <-- 这是一个字符串

非常感谢!

最佳答案

$val1 是数字时,您的代码应该可以正常工作。

当它是一个字符串时,您需要在 SQL 中用引号将其引起来。

$gen = "SELECT gender FROM tbl_users WHERE fname = '$val1'";

但如果您使用支持准备好的查询的数据库 API(MySQLI 或 PDO),那就最好了。那么你就完全不用担心这个问题了。

关于php - PHP 初学者 -Where 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36807914/

相关文章:

javascript - 嵌套包含在sequelize中?

mysql 计算其他表的行数并在 where 中使用它

mysql - 为什么我不能在 WHERE 中使用我的列,而我可以在 GROUP BY 中使用?

php - 连接到同一网络上另一台电脑上的 mysql 数据库

php - 在回调之外获取 Laravel Excel block 结果

php - Ajax和Mysql一键插入2同一行

php - 每个用户每天结构的 Mysql 访问者统计信息?

mysql - 为什么优化器使用 'ALL' 类型而不是 'index' 类型?

Mysql:扩展选择,包括原始表中丢失的记录

Php Mysql SELECT 查询 1 列等于 1 个变量