【问题标题】:How do you query a database which has a variable filename?如何查询具有可变文件名的数据库?
【发布时间】:2011-08-29 03:24:01
【问题描述】:

我有一个我想查询的 sqlite 数据库。但是,当我尝试从 PHP 变量中读取数据时,会出现未捕获的异常 'PDOException' 和消息 'SQLSTATE[HY000] 错误。

以下是代码($getdb 包含 db 的文件名):

$final_db  = $getdb[2];
$db_test = new PDO ("sqlite:Database/$final_db");
$result_test = $db_test->query("SELECT * from dcerpcrequests limit 2;");
print_r($result_test);

提前感谢您的帮助! :)

【问题讨论】:

  • PDO 不会抛出异常,除非出现问题。你确定你在new PDO(...) 部分完全连接吗?
  • 我猜这就是问题所在。如果我在那里对文件名进行硬编码,它将起作用。但不是 PHP 使用的变量 :(
  • 你怎么知道这个值是你期望的?
  • 那么你的变量是错误的。 var_dump($final_db) 带给你什么?
  • sqlite 似乎没有在他们的语句中读取 php 变量 :(

标签: php sqlite


【解决方案1】:

首先,在 $final_db 声明下尝试使用 var_dump($final_db) 来查看变量的内容究竟是什么。如果它们看起来不错,那么您的问题可能是其他问题,例如隐藏的控制字符。尝试使用 trim() 清理变量,这种方式。

$final_db  = trim($getdb[2]);

【讨论】:

    【解决方案2】:

    您的变量可能不是您认为的那样。它是变量还是硬编码值都没有关系。数据库服务器不在乎。

    尝试 var_dump 您的变量以确保它们的值符合您的预期。

    除此之外它应该可以正常工作。

    【讨论】:

      猜你喜欢
      • 2016-11-15
      • 1970-01-01
      • 2013-07-17
      • 2013-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-13
      • 2022-01-06
      相关资源
      最近更新 更多