【发布时间】:2013-09-01 07:55:24
【问题描述】:
我不知道缺少什么或为什么不显示数据。如果我不使用准备好的语句,我的代码就可以工作。当我使用准备好的语句时,代码似乎不再工作了。
db.php
Class Database{
public $mysqli;
public function __construct($db_host, $db_user, $db_password, $db_name){
$this->con = new mysqli($db_host, $db_user, $db_password, $db_name);
}
public function selectUserInfo($id){
$stmt = $this->con->prepare("SELECT * FROM users WHERE os_id = ?");
$stmt->bind_param("s", $id);
if($stmt->execute() == FALSE){
trigger_error($stmt->error, E_USER_ERROR);
}else{
$data = array();
while($row = $stmt->fetch()){
$data[] = $row;
}
return $data;
}
}
}
config.php
define("DBHOST","somehost");
define("DBUSER","someroot");
define("DBPASS","somepassword");
define("DB","my_database");
这就是我在页面上显示它的方式。
require 'global/db.php';
require_once 'config.php';
$db = new Database(DBHOST, DBUSER, DBPASS, DB);
$data = $db->selectUserInfo($_GET['name']);
foreach ($data as $key) {
# code...
echo $key['os_fname'];
}
【问题讨论】:
-
没有错误信息?您是否传递了一个名为
name的 GET 参数?如果是这样,您的数据库中是否有osd_id等于该参数的行? -
它不显示错误消息。我想在我的 $_GET['name'] 中显示值 1
-
@Edgar 那么当你打开页面时,你的URL中有
?name=1吗? -
@vinodadhikary 不,不是。每个
$key是一行 -
@Phil 是的.. 我的网址中有 name=1
标签: php oop mysqli statements