gpt4 book ai didi

mysql - 在 drupal 中使用枚举

转载 作者:行者123 更新时间:2023-11-29 03:59:14 25 4
gpt4 key购买 nike

我有一个 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com