我已成功连接到我的MySQL数据库并使用以下代码获取数据:
try {
$results = $db->prepare("SELECT * FROM persoonsinfo WHERE id = ?");
$results->bindParam(1,$_SESSION["user_id"]);
$results->execute();
} catch (Exception $e) {
echo "data could not be retrieved";
exit;
}
使用var_dump($results->fetch(PDO::FETCH_ASSOC));
转储正确的行!例如:
array(15) {
["id"]=>
string(1) "1"
["bedrijf"]=>
string(0) ""
["titel"]=>
string(0) ""
["voorletters"]=>
string(4) "test"
["tussenvoegsel"]=>
string(0) ""
["achtervoegsel"]=>
string(0) ""
["meisjesnaam"]=>
string(0) ""
["thuis_adres"]=>
string(22) "test"
["thuis_postcode"]=>
string(7) "test"
["thuis_plaats"]=>
string(9) "test"
["thuis_land"]=>
string(0) ""
["mobiele_telefoon"]=>
string(11) "test"
["email_thuis"]=>
string(20) "test"
["geboortedatum"]=>
string(0) ""
["bsn_nummer"]=>
string(0) ""
}
所以这很完美,但现在我对如何将数据回显到屏幕上感到很伤心。
我创建了这个:$user_info = $results->fetch(PDO::FETCH_ASSOC);
并希望这个<?php echo $user_info['voorletters']; ?>
可以正常工作,但它并没有回应任何事情而且它让我发疯。
我试图在我的`page-mijnawf.php&#39;中做echo
。文件和我在那个文件中做了:
<?php include (TEMPLATEPATH . '/includes/database.php'); ?>
包含上面显示的代码。
我在这里缺少什么? 谢谢!
更新01
这里要求的是我的更新代码。生成三个块,我的database.php
(数据库连接部分)user-session-info.php
(获取用户ID的会话)和page-mijnawf.php
(用户可见的前端页面):
这是database.php
:
try {
$db = new PDO("mysql:host=localhost;dbname=contacten_db;port=8889","root","root");
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->exec("SET NAMES 'utf8'");
} catch (Exception $e) {
echo "Could not connect to the Database Contacten_DB";
exit;
}
try {
$results = $db->prepare("SELECT * FROM persoonsinfo WHERE id = ?");
$results->bindParam(1,$_SESSION["user_id"]);
$results->execute();
} catch (Exception $e) {
echo "data could not be retrieved";
exit;
}
echo "<pre>"; //For Testing only
$user_info = $results->fetch(PDO::FETCH_ASSOC);
var_dump($user_info);
?>
user-session-info.php
:
<?php
// Start the session
session_start();
// Set session variables
$_SESSION["user_id"] = intval(get_current_user_id());
//echo "User ID =" . " " . $_SESSION["user_id"]
?>
我删除了和page-mijnawf.php
,因为其中99%的内容与此主题无关:
<div>
<?php include (TEMPLATEPATH . '/includes/database.php'); ?>
<?php include (TEMPLATEPATH . '/includes/user-info-session.php'); ?>
<p class="no-bottom-margin">Welkom <?php echo $user_info['voorletters']; ?> Uw Fonds: </p>
</div>
注意此处代码块中结束div之前的行中的<?php echo $user_info['voorletters']; ?>
。那条线没什么回声
感谢您的帮助!
答案 0 :(得分:0)
&#34; fetch&#34; method返回数据库中的内容,然后跳到下一行。如果你只有一行,那么为&#34; var_dump&#34;已经到达结果集的末尾。
您的解决方案:请勿致电var_dump($results->fetch(PDO::FETCH_ASSOC));
,以便只执行一次$results->fetch
!
如果您需要在屏幕上打印记录以进行调试,那么在致电$user_info = $results->fetch(PDO::FETCH_ASSOC);
后,您可以执行var_dump($user_info)