【发布时间】:2012-10-23 17:23:18
【问题描述】:
我正在尝试创建一个用户管理系统类,我的功能之一是检查一个值是否在数据库的列中。它什么也不返回。
以下是相关信息:
require("opperators/connect.php");
class UserManagemen
{
protected $db;
public function __construct(PDO $db)
{
$this->db = $db;
}
public function isInDatabase($checkIfThis, $isHere)
{
$stmt = $db->prepare("SELECT 1 from users WHERE $isHere = :$isHere");
$stmt->execute(array(':$isHere' => $checkIfThis));
if ($stmt->rowCount() > 0) {
echo "It's in the database";
} else {
echo "Not in the database and you are good to go!";
}
}
}
$usermanagement = new UserManagemen($db, null, null, null);
$usermanagement->isInDatabase(Batman, username);
在connect.php中:这在我的程序编码测试中有效。
$configurator['database'] = array(
'username' => 'root',
'password' => 'root',
'host' => 'localhost',
'db' => 'girlscouts',
);
$options = array(
PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'
);
try {
$db = new PDO("mysql:host={$configurator['database']['host']};dbname={$configurator['database']['db']};charset=utf8", $configurator['database']['username'], $configurator['database']['password'], $options);
}
catch (PDOException $ex) {
die("Failed to connect to the database: " . $ex->getMessage());
}
如果有人反复询问,我提前道歉,我已经尝试了谷歌但没有返回任何有价值的东西,可能是因为我不知道谷歌是什么。我不喜欢寻求帮助,但我会试一试。
【问题讨论】:
-
WHERE 子句中不需要
=吗? -
加上 anrewsi 所说的,看起来 php 错误报告已关闭,否则它会告诉您查询中有错误。然后,您可以使用 php 找出问题所在,并得出与 andrewsi 相同的结论。
-
当然可以!修复它并测试它。还没有改变最终结果,但它确实是一个必要的改变,证明我需要更多的咖啡。
-
@rococopolkadotbandit - 实际上......我认为你的
if声明是错误的。如果您的查询返回行,那么您已找到数据,但您当前正在回显“不在数据库中”行。 -
是的,修复了 if 语句。我将努力弄清楚什么是错误报告以及如何打开它。
标签: php