PHP准备语句非对象错误

PHP准备语句非对象错误,php,mysql,Php,Mysql,我试图将我的php脚本转换为使用预先准备好的语句,但它给了我一个错误……有人知道怎么了吗 <?php define("DB_DSN","xxx"); define("DB_HOST","xxx"); define("DB_USER","xxx"); define("DB_PASS","xxx"); $con = mysql_connect(DB_HOST, DB_USER, DB_PASS) or die('Could not connect: ' . mysql_error()); m

我试图将我的php脚本转换为使用预先准备好的语句,但它给了我一个错误……有人知道怎么了吗

<?php
define("DB_DSN","xxx");
define("DB_HOST","xxx");
define("DB_USER","xxx");
define("DB_PASS","xxx");

$con = mysql_connect(DB_HOST, DB_USER, DB_PASS) or die('Could not connect: ' . mysql_error());
mysql_select_db(DB_DSN) or die('Could not select database');
$stmt = $con->prepare("UPDATE Level01 SET Deaths=:Deaths WHERE DeathID= :DeathID");
$stmt->bindParam(':Deaths', $deaths);
$stmt->bindParam(':DeathID', $id);

$id = base64_decode($_GET["id"]);
$deaths = base64_decode($_GET["deaths"]);       
$uresult = $stmt->execute();
if(! $uresult )
{
  die('Could not update data: ' . mysql_error());
}
echo "Updated data successfully\n";
mysql_close($con);
exit;

mysql\u connect
不返回MySQLi对象,而是返回mysql资源


你似乎在混合MySQL和MySQLi。由于MySQL不支持预先准备好的语句,所以它们之间的替代关系不是很好。请再次阅读,这里的解释非常清楚。

mysql\u connect
不返回MySQLi对象,而是返回mysql资源


你似乎在混合MySQL和MySQLi。由于MySQL不支持预先准备好的语句,所以它们之间的替代关系不是很好。再读一遍,这里的解释非常清楚。

首先绑定变量,然后分配它们。试试另一种方法:

$id = base64_decode($_GET["id"]);
$deaths = base64_decode($_GET["deaths"]); 

$stmt->bindParam(':Deaths', $deaths);
$stmt->bindParam(':DeathID', $id);

如果不是这样,请添加您收到的错误消息

首先绑定变量,然后分配它们。试试另一种方法:

$id = base64_decode($_GET["id"]);
$deaths = base64_decode($_GET["deaths"]); 

$stmt->bindParam(':Deaths', $deaths);
$stmt->bindParam(':DeathID', $id);

如果不是这样,请添加您收到的错误消息

您不能在mysql中使用准备好的语句,请使用mysqli或PDO。

您不能在mysql中使用准备好的语句,请使用mysqli或PDO。

您会遇到什么错误?请尽可能精确。MySQL扩展不支持prepared语句:使用MySQLi或PDO致命错误:在非-object@MarkBaker谢谢你的回复!我尝试了PDO和MYSQLI两种方法,但都不起作用……我得到一个错误,说对服务器的访问被拒绝。我使用的是一个免费的托管网站,那么有没有办法禁止使用PDO或MYSQLI?你会得到什么错误?请尽可能精确。MySQL扩展不支持prepared语句:使用MySQLi或PDO致命错误:在非-object@MarkBaker谢谢你的回复!我尝试了PDO和MYSQLI两种方法,但都不起作用……我得到一个错误,说对服务器的访问被拒绝。我正在使用一个免费的托管网站,那么有没有办法禁止使用PDO或MYSQLI?谢谢你的回复!我尝试了PDO和MYSQLI两种方法,但都不起作用……我得到一个错误,说对服务器的访问被拒绝。我正在使用一个免费的托管站点,那么有没有办法禁止PDO或MYSQLI使用?@Alan,可能(可能?)扩展不可用。尝试使用
php\u info()
来找出答案。如果找不到他们,就赶快离开那个主人很远的地方。谢谢你的回复!我尝试了PDO和MYSQLI两种方法,但都不起作用……我得到一个错误,说对服务器的访问被拒绝。我正在使用一个免费的托管站点,那么有没有办法禁止PDO或MYSQLI使用?@Alan,可能(可能?)扩展不可用。尝试使用
php\u info()
来找出答案。如果找不到他们,就迅速地远离那个主人。