[英]PDO error when Fetching results
我試圖顯示使用PDO的簡單select語句的結果
<?php
// Define and perform the SQL SELECT query
include('config.inc');
$user = $_POST['user'];
$password = $_POST['password'];
$sql = "SELECT * FROM usuarios where user = '$user' AND password ='$password'";
$stm = $db->prepare($sql);
$stm->execute();
// here you go:
$users = $stm->fetchAll();
foreach ($users as $row) {
print $row["user"] . "-" . $row["password"] ."<br/>";
}
?>
我唯一得到的就是這樣的錯誤:
未定義的索引:第16行的C:\\ wamp \\ www \\ proyect \\ select.php中的用戶
也許是一件非常簡單的事情,我可能會在此測試中忽略,我正在使用php 5.3.5。
這是包含的文件:
<?php
$dsn = 'mysql:host=localhost;dbname=carrito';
$username = 'root';
$password = 'root';
try {
$db = new PDO($dsn, $username, $password);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}catch (PDOException $e){
$error_message = $e->getMessage();
//include('db_error.php');
echo $error_mesage;
file_put_contents('PDOErrors.txt', $e->getMessage(), FILE_APPEND);
exit();
}
?>
如果我猜得出來:
您已設置PDO::CASE_UPPER
。 http://www.php.net/manual/zh/pdo.constants.php
或者您的列名只是自然地大寫。
但是...不要再懷疑了,開始調查。 簡單地做
var_dump($users);
看看你有什么。
去掉:
$users = $stm->fetchAll();
foreach ($users as $row) {
print $row["user"] . "-" . $row["password"] ."<br/>";
}
嘗試一下:
while($row = $stm->fetch(PDO::FETCH_ASSOC)){
print $row["user"] . "-" . $row["password"] ."<br/>";
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.