我會承認php對我來說是一種新的語言。使用fetch_column和fetch(PDO :: FETCH_ASSOC)?
現在我可以單獨使用這些工具。在我的準備查詢SELECT * FROM ...將允許我的PDO獲取assoc while循環工作,但然後獲取列不起作用。然後我使用SELECT COUNT(*)我的抓取列工作,但是然後我的抓取assoc沒有。
因此,圍繞這一點,所以兩者都會工作嗎?因爲我需要獲取列來返回有多少行作爲整數值(1或0)來確定用戶是否輸入了登錄信息。但後來我需要在那裏獲取列以返回在我的數據庫中的表的用戶名部分中輸入的字符串值。以便我可以使用此信息根據用戶的輸入檢查它以驗證用戶和密碼。
謝謝,這是我的代碼。如果你需要它更清楚地解釋我會去。
<?php
$config['db'] = array(
'host' => 'localhost',
'username' => 'root',
'password' => '',
'dbname' => 'inb271assignment'
);
$pdo = new PDO('mysql:host=' . $config['db']['host'] . '; dbname=' . $config['db']['dbname'], $config['db']['username'], $config['db']['password']);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
try
{
$pdo->beginTransaction();
$username = $_POST['Username'];
$password = $_POST['Password'];
//Nicholas will be $dbUsername when fetch is working correctly.
$databaseusername = Nicholas;
if ($username&&$password)
{
$result = $pdo->prepare("SELECT COUNT(*) FROM members WHERE Username=?");
$result->execute(array($databaseusername));
$row = $result->fetchColumn();
if ($row!=0) {
while ($rows = $result->fetch(PDO::FETCH_ASSOC)) {
$dbUsername = $rows['Username'];
}
echo $dbUsername;
}
else
die("That user doesn't exist");
}
$pdo->commit();
}
catch(PDOException $pe)
{
echo($pe->getMessage());
}
?>
所以目前我有SELECT COUNT(*)在那裏。所以如果我在頁面上的表單中輸入用戶名和密碼,它將返回爲!= 0,允許while循環工作。如果我有SELECT *,while循環通常會工作。但是因爲我不這樣做,因爲我需要計數它沒有。所以我無法從數據庫檢索我需要的信息。
爲什麼你需要'COUNT(*)'? – agim
如果我不包含它,那麼fetchColumn()不起作用。所以目前我可以得到我需要展示的兩件事中的一件或另一件。只是不是在同一時間。現在嘗試法比奧的方法。 –