[英]Fatal error: Call to a member function prepare() on a non-object in pdo
[英]Fatal error: Call to a member function prepare() on a non-object PDO
我试图将我的sql工作到PDO,但它显示以下致命错误:在/ home / content / 58/9508458 / html / pa / test中的非对象上调用成员函数prepare()。 第12行的php
原始代码
<?php
$pdfreq=$_GET['dadi'];
include('config.php');
require('fpdf.php');
$link =mysql_connect($db_host,$username,$password);
mysql_select_db($db_name);
$update = "UPDATE mastertable SET pdfstatus =1 WHERE id_pk = $pdfreq";
mysql_query($update, $link);
替换为
<?php
$pdfreq=$_GET['dadi'];
include('config.php');
require('fpdf.php');
$link =mysql_connect($db_host,$username,$password);
mysql_select_db($db_name);
$sql = "UPDATE mastertable SET pdfstatus=?, WHERE id_pk=?";
$q = $link->prepare($sql);
$q->execute(array(1,$pdfreq));
您的$link
变量不是PDO对象。 您应该替换:
$link = mysql_connect($db_host,$username,$password);
mysql_select_db($db_name);
带有:
$link = new PDO("mysql:dbname=$db_name;host=$db_host",$username,$password);
您使用的是MySQL帮助程序功能,而不是PDO或MySQLi。
准备工作与您的工作不符
您需要将语法更改为,注意MySQLi中的结尾i
<?php
$pdfreq=$_GET['dadi'];
$id = 1;
include('config.php');
require('fpdf.php');
$link = new mysqli($db_host,$username,$password, $db_name);
$sql = "UPDATE mastertable SET pdfstatus=? WHERE id_pk=?";
$q = $link->prepare($sql);
$q->bind_param("is", $id, $pdfreq);
$q->execute();
由于MySQL没有prepare方法,因此您的值将永远不会设置为1,并且您将因Fatal error: Call to a member function prepare() on a non-object
而失败Fatal error: Call to a member function prepare() on a non-object
如果您想使用PDO,请参阅PHP.Net上的PDO文档。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.