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 Adderror\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