PHP致命错误:未捕获错误:调用第23行null上的成员函数query()
当我跑这条线的时候PHP致命错误:未捕获错误:调用第23行null上的成员函数query(),php,mysql,websocket,xampp,composer-php,Php,Mysql,Websocket,Xampp,Composer Php,当我跑这条线的时候 $sql = $_db->query("UPDATE users SET theyear= '1999' WHERE UserName='batman'"); 我得到这个错误 PHP Fatal error: Uncaught Error: Call to a member function query() on null in line 23 我使用ratchet lib和php更改数据库行上的值,如果用户连接到服务器,代码可以找到数据库表,而不存在任何问题,
$sql = $_db->query("UPDATE users SET theyear= '1999' WHERE UserName='batman'");
我得到这个错误
PHP Fatal error: Uncaught Error: Call to a member function query() on null in line 23
我使用ratchet lib和php更改数据库行上的值,如果用户连接到服务器,代码可以找到数据库表,而不存在任何问题,但是当涉及到编辑值行时,我得到了这个错误
数据库connectToDB.php代码
$dbhost = "localhost";
$dbname = "test";
$dbuser = "root";
$dbpass = "";
// database connection
try{
$_db = new PDO("mysql:host=$dbhost;dbname=$dbname",$dbuser,$dbpass, array(
PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8",
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_PERSISTENT => true
));
}catch(Excepion $e){
die("ERROR : ".$e->getMessage());
}
?>
用于编辑行值的php代码
<?php
namespace MyApp;
include('/opt/lampp/htdocs/x/classes/user.php');
include('/opt/lampp/htdocs/x/connectToDB.php');
use Ratchet\MessageComponentInterface;
use Ratchet\ConnectionInterface;
class Chat implements MessageComponentInterface {
protected $clients;
public function __construct() {
$this->clients = new \SplObjectStorage;
}
public function onOpen(ConnectionInterface $conn) {
global $_db;
// Store the new connection to send messages to later
$this->clients->attach($conn);
echo "New connection! ({$conn->resourceId})\n";
$sql = $_db->query("UPDATE users SET theyear= '1999' WHERE UserName='batman'");
}
这将起作用您的数据库对象为空。您的连接字符串有问题。@但我试图在没有ratchet的情况下使用它,而编辑行解决了任何问题?您是否有连接对象为空的错误状态。这可能是您的连接字符串或文件istelf的问题。@ChipDean是的,我的意思是Sorry我得到了这个错误PHP致命错误:未捕获的错误:调用成员函数prepare()我得到了MyApp\PDO'not Found我修复了MyApp\PDO'not Found,但是我得到了新的错误PHP注意:未定义的变量:_DBin这一行$sql=$\u db->prepare(“我的查询”)
{
"autoload": {
"psr-0": {
"MyApp": "src"
}
},
"require": {
"cboden/ratchet": "^0.3.6",
"cboden/ratchet": "^0.3.6"
}
}
$r = $_db->prepare("your query here");
$r->execute();