5

我在 Drupal6 中编写了以下查询。

$sql = 
    "SELECT registryvalue 
    FROM {muln_registry} 
    WHERE fk_applicationid = %d 
    AND registrykey = '%s'";

$result = db_result(db_query($sql, 32, 'SHOW_SCORE_TO_STUDENT'));

它应该返回值 1。但它没有显示任何内容。如果我在 mysql 编辑器中复制并运行,它会正确返回。

但现在它给空了。数据库连接等没有错误。因为其他查询运行良好。

这里可能是什么错误?

4

5 回答 5

0

我只能看到错误是因为{}

应该

 $sql = "SELECT registryvalue FROM muln_registry WHERE fk_applicationid = %d AND registrykey = '%s'";
于 2013-03-26T09:58:26.133 回答
0

试一试

echo '<pre>';
var_dump(db_query($sql, 32, 'SHOW_SCORE_TO_STUDENT'));
echo '</pre>';

并查看句柄中有哪些数据。这可能会让您更好地了解出了什么问题。我的建议是切换到 PDO,但我知道当系统已经使用不同的数据库机制时,这不会是一个有效的选择。

于 2013-05-02T20:37:28.697 回答
0

如果 'SHOW_SCORE_TO_STUDENT' 每次都相同,为什么不使用:

$sql = "SELECT registryvalue FROM {muln_registry} WHERE fk_applicationid = '%d' AND registrykey = 'SHOW_SCORE_TO_STUDENT'";

此外,您在第二个参数周围有 ' ' 而不是第一个参数,不确定这是否可能是问题?

于 2013-05-03T13:32:20.360 回答
-1

您应该尝试使用 LIKE 运算符来搜索模式。例如 WHERE column_name LIKE '%searchString',将搜索以 searchString 开头的记录。

更多关于Like的信息,您可以搜索它。

于 2013-03-26T10:07:20.690 回答
-2

请用:

$sql     = "SELECT registryvalue FROM muln_registry WHERE fk_applicationid = %d AND registrykey = '%s'";

代替

$sql     = "SELECT registryvalue FROM {muln_registry} WHERE fk_applicationid = %d AND registrykey = '%s'";

{} 花括号已被删除。

于 2013-03-26T10:15:14.603 回答