PHP致命错误:对PDO和mysqli中的非对象调用成员函数prepare()

PHP致命错误:对PDO和mysqli中的非对象调用成员函数prepare(),php,pdo,mysqli,Php,Pdo,Mysqli,我尝试了几种使用参数化语句的方法,但仍然存在问题 首先,我尝试了参数化语句: $dbc = new PDO("mysql:host=localhost;dbname=the_name", 'the_login', 'the_pass'); $query = $dbc->prepare('INSERT INTO req_form (lname, fname, email, address, city, state, zip, phone, affiliation, role, ip_addr

我尝试了几种使用参数化语句的方法,但仍然存在问题

首先,我尝试了参数化语句:

$dbc = new PDO("mysql:host=localhost;dbname=the_name", 'the_login', 'the_pass');
$query = $dbc->prepare('INSERT INTO req_form (lname, fname, email, address, city, state, zip, phone, affiliation, role, ip_address, abc, ace, carr, ema, tuac, olatc_temp) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)');
$query->execute(array($lname, $fname, $email, $addr, $city, $state, $zip, $phone, $affiliation, $prof_role, $_SERVER['REMOTE_ADDR'], enum($abc), enum($ace), enum($carr), enum($ema), enum($tuac), enum($last)));
但是得到了“PHP致命错误:对非对象调用成员函数prepare()”

现在我试着:

$conn = new mysqli('localhost', 'the_login', 'the_password', 'the_name');
$sql = 'INSERT INTO req_form (lname, fname, email, address, city, state, zip, phone, affiliation, role, ip_address, abc, ace, carr, ema, tuac, olatc_temp) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)';
$query = $conn->prepare($sql);
$query->bind_param('ssssssissssssssss', $lname, $fname, $email, $addr, $city, $state, $zip, $phone, $affiliation, $prof_role, $_SERVER['REMOTE_ADDR'], enum($abc), enum($ace), enum($carr), enum($ema), enum($tuac), enum($last));
$query->execute();
我仍然得到错误,我是否可能在insert语句中使用保留名称

编辑(添加了枚举函数):

编辑(phpinfo()的mysqli部分的输出):


当我把var_dump($conn)放在第一行之后,它会打印出内容,如果我把它放在$conn->prepare的正上方,它会显示NULL,这意味着你没有连接到数据库。检查你的用户名/密码。试着检查连接错误。
$conn=new mysqli(…);如果($conn->connect_error){die($mysqli->connect_error);}
检查您是否安装/启用了mysqli。@Rocket他正在调用
new{classname}
并得到一个错误{whatever}在非对象上。在
new
之后不获取对象的唯一方法是类不存在或构造函数抛出异常,在这种情况下,他不会到达下一行。
var\u dump($conn);
var\u dump($dbc);
。您的对象是对象吗?@Raymond Add
error\u reporting(E\u ALL);ini\u set('display_errors',1);
在脚本开头的

function enum($ar){
    if(count($ar)>1)
        return 'BOTH';
    else
        return $ar;
}
mysqli
MysqlI Support enabled 
Client API library version  mysqlnd 5.0.8-dev - 20102224 - $Id: SOME_VALUE_WAS_HERE $  
Active Persistent Links  0  
Inactive Persistent Links  0  
Active Links  0  

Directive Local Value Master Value 
mysqli.allow_local_infile On On 
mysqli.allow_persistent On On 
mysqli.default_host no value no value 
mysqli.default_port 3306 3306 
mysqli.default_pw no value no value 
mysqli.default_socket no value no value 
mysqli.default_user no value no value 
mysqli.max_links Unlimited Unlimited 
mysqli.max_persistent Unlimited Unlimited 
mysqli.reconnect Off Off