作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 mysql 表 id,name,gender,age religion( enum('HIN','CHR','MUS') ,category(enum('IND','AMR','SPA') 最后一个2 是枚举数据类型,我在 drupal 中的代码是
$sql="SELECT * FROM {emp} WHERE age=".$age." and religion=".$rel." and category=".$categ;
$result=db_query_range($sql,0,10);
while($data=db_fetch_object($result))
{
print $data->id." ".$data->name."<br>";
}
我没有得到任何结果或错误。我正在尝试对每个字段进行不同的查询,除了使用枚举外,一切都很好。
for ex: $sql='SELECT * FROM {emp} WHERE religion="'.$rel.'"';
在drupal中使用枚举数据类型有没有问题
最佳答案
枚举不是我认为 drupal 可以使用模式 API 制作的东西,而这正是您在大多数情况下想要用于模块和其他东西的东西。此外,您在引用它时缺少结尾 ),但我相信您在制作表格时做对了。
枚举只是在插入值时内置到数据库中的约束。因此,如果您尝试插入一个无效值,您将插入一个空字符串。所以它不会对 Drupal 查询获取数据有任何影响。除了将无效值转换为空字符串外,它在 Drupal 插入值时也不会产生任何影响。您可能想检查您的数据,看看它是否符合预期。您可能得不到任何结果,因为您的查询不匹配任何内容。
另一件事是您构建查询的方式是大不不,因为它非常不安全。你应该做的是:
db_query("SELECT ... '%s' ...", $var);
Drupal 将用您的 var 替换 %s 并确保没有 SQL 注入(inject)和其他讨厌的东西。 %s 表示 var 是一个字符串,使用 %d 表示整数,还有一些我现在不记得了。您可以有多个这样的占位符,它们将按顺序插入,就像 t 函数一样。
关于mysql - 在 drupal 中使用枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1806984/
我是一名优秀的程序员,十分优秀!