我对 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 子句指向其他记录。
注释和尝试的场景:
- Id 是我的数据库中的主键 <--- ID 是 int
- 我还尝试使用
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/