私は最近小さなプロジェクトに取り組んでおり、PHP 関数の 1 つがユーザー名が存在するかどうかを確認し、それが機能するかどうかを確認しましたが、間違ったテーブルを読み取ります。todo_users を読み取り、users テーブルを読み取ります。これが私のコードです:
Connect.php
class Connect
{
public $sqlHost='MySQLHost';
public $sqlUser='MySQLUser';
public $sqlPass='MySQLPass';
public $sqlDB='MySQLDB';
public $tablePrefix='todo';
public function connect(){
return new mysqli($this->sqlHost, $this->sqlUser, $this->sqlPass, $this->sqlDB);
}
}
注: 明らかなセキュリティ上の理由から、sql 変数を置き換えました。
関数:
public static function exists($username) {
$connect = new Connect();
$c = $connect->connect();
$t = $connect->tablePrefix."_users";
$stmt = $c->prepare("SELECT username FROM `".$t."` WHERE username = ?");
$stmt->bind_param("s", $username);
$stmt->execute();
$stmt->store_result();
$num_row = $stmt->num_rows;
$stmt->bind_result($result);
if($num_row === 0) {
return "false";
} else {
return "true";
}
$stmt->close();
$c->close();
}
関数が呼び出される checkuser.php:
require_once("userfunc.php");
if(isset($_POST["user"]))
{
$username = $_POST["user"];
if(USERFUNC::exists($username)) {
echo "YES";
} else {
echo "NO";
}
}
編集: 私が使用しているバージョンは次のとおりです: PHP バージョン 5.3.18 MySQL バージョン 5.1.68
助けてください。前もって感謝します。