gpt4 book ai didi

php - MySQL 不查询

转载 作者:行者123 更新时间:2023-11-29 22:17:02 26 4
gpt4 key购买 nike

记录器显示我已连接到数据库,但我无法正确查询或添加表,因为我收到“主表失败”然后“玩家不在数据库中”然后“无法添加条目”然后“当我加入游戏时,“玩家不在数据库中”,因此这显然是我的 MySQL 方面的错误。如果有人能指出我正确的方向,那就太好了!

<?php

namespace gladiusdata;

use pocketmine\plugin\PluginBase;
use pocketmine\level\particle\FloatingTextParticle;
use pocketmine\math\Vector3;
use pocketmine\utils\TextFormat;
use gladiusinfo\AnnounceTask;
use gladiusinfo\gladiusinfo;
use pocketmine\utils\Config;
use pocketmine\event\Listener;
use pocketmine\event\player\PlayerJoinEvent;

class Main extends PluginBase implements Listener
{
private $db;

public function onEnable()
{
$this->getServer()->getPluginManager()->registerEvents($this, $this);

$user = /*username*/;
$pass = /*password*/;
$server = /*server*/;
$database = /*database*/;
$port = /*port*/;

$this->db = @mysqli_connect($server, $user, $pass, $database, $port);
if(!$this->db)
{
$this->getServer()->getLogger()->info(TextFormat::RED . "Did not work");
} else {
$this->getServer()->getLogger()->info(TextFormat::GREEN . "Worked!");
}

if($this->db->query("CREATE TABLE IF NOT EXISTS master (player TEXT PRIMARY KEY COLLATE NOCASE, rank TEXT, bal INTEGER);"))
{
$this->getServer()->getLogger()->info(TextFormat::GREEN . "Created master table");
} else {
$this->getServer()->getLogger()->info(TextFormat::RED . "Master table failed");
}
}

public function onPlayerJoin(PlayerJoinEvent $pje)
{
$this->insert($pje->getPlayer()->getName());
}

public function insert($player, $rank = "none", $bal = 0)
{
if(!$this->playerExists($player))
{;
$sql = "INSERT INTO master (player, rank, bal) VALUES ($player, $rank, $bal)";
if($this->db->query($sql))
{
$this->getServer()->getLogger()->info(TextFormat::GREEN . "Added new entry successfully");
} else {
$this->getServer()->getLogger()->info(TextFormat::RED . "Could not add entry");
}
}
$this->playerExists($player);
}

public function playerExists($player)
{
$result = $this->db->query("SELECT * FROM master WHERE player='$player'");
if($result)
{
$this->getServer()->getLogger()->info(TextFormat::GREEN . "Player is in database!");
} else {
$this->getServer()->getLogger()->info(TextFormat::RED . "Player is not in database!");
}
}
}

最佳答案

您的表未创建,因为 TEXT 列设置为主键。您不能将 TEXT 列设置为主键。错误是

ERROR 1170 (42000): BLOB/TEXT column 'name' used in key specification without a key length

有关更多信息,请参阅链接-

MySQL error: key specification without a key length

MySQL error: key specification without a key length

关于php - MySQL 不查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31129315/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com