doupingzhi9674
2016-04-20 15:12
浏览 114
已采纳

致命错误:在整数上调用成员函数prepare()

I'm working on a website; apache asks me to upgrade to the new method of PDO.

I have my function which will collect all the information of user X, indicated by the variable $_SESSION['username'].

My problem is: I get the error title. However I want to collect String and INT values.

My Function: functions.php

function getDetails($username) {
    $db = require("dbConn.php");
    $sql = $db->prepare("SELECT * FROM `es42_members` WHERE HandleName='$username'");
    $sql->execute();
    $row = $sql->fetchAll();

    return $row;
}

My index file: index.php

$details = getDetails($_SESSION['username']);

while ($row = $details->fetch_assoc())  {
    $id = $row['UserID'];
    $email = $row['Email']; // This return String
    $isAdmin = $row['isAdmin']; //This return 0 - 1. But in the table is registered by String (Varchar).
}

echo "Your email is: $email";
if($isAdmin == "1"){ echo "You are a admin!" }

UPDATE My new code is as follows:

Function: @Marcus

function getDetails($username) {
    require("dbConn.php");
    $sql = $db->prepare("SELECT * FROM `es42_members` WHERE HandleName='$username'");
    $sql->execute();
    $row = $sql->fetchAll();

    return $row;
}

dbConn.php [Original]

<?php 

$db = new PDO('mysql:host=localhost;dbname=ProfileTest', "root", "1234");
$db = null;

?>

dbConn.php [Edited and working]

<?php 

$db = new PDO('mysql:host=localhost;dbname=ProfileTest', "root", "1234");

?>

2条回答 默认 最新

相关推荐 更多相似问题