這裏我再次! 我來過一個相當討厭的問題,我很確定我沒有做錯。MYSQL關於布爾給定而不是變量
當我嘗試檢查用戶名是否已經通過PHP在MYSQL數據庫中存在時,它會忽略該字符串是一個布爾值而不是變量。
這是PHP代碼:
if (isset($_POST['Submit1']))
{
$username = $_POST['username'];
if(IsNameInUse($username)) header("Location: cselect.php?exist");
}
else if (isset($_POST['Submit2']))
{
$username = $_POST['username'];
if(IsNameInUse($username)) header("Location: cselect.php?exist");
}
else if (isset($_POST['Submit3']))
{
$username = $_POST['username'];
if(IsNameInUse($username)) header("Location: cselect.php?exist");
}
這裏是 「IsNameInUse」 從我的函數文件:
function IsNameInUse($username)
{
$username = mysql_real_escape_string($username);
$query = mysql_query("SELECT COUNT(ID) FROM Accounts WHERE Username = '$username'");
return (mysql_result($query, 0) == 1) ? true : false;
}
我已經執行了: 「回聲$的用戶名;」這清楚地表明一個字符串被設置爲$ username。它清楚地給了我我輸入的字符串。現在,我真的不知道爲什麼它給了以下錯誤:
[error] PHP Warning: mysql_result() expects parameter 1 to be resource, boolean given in /var/zpanel/hostdata/paradise/public_html/paradiseroleplay_com/includes/functions.php on line 7
所以在這裏我再次問互聯網的永不落幕的知識。 Regards, Heartfire。
編輯修好了。 「對不起,對mysql錯誤的死亡,清楚地表明我可以是多麼愚蠢,我忘了帳戶,我做了」AccID「而不是」ID「......感謝一堆,現在修好了。 關於DTO,好點 - 會做。
在mysql_query上放一個''或者死(mysql_error())'來查看最新情況,不管怎樣,不要使用mysql – Ghost 2014-09-23 09:02:56
@Ghost的意思是說你應該使用['PDO'](http://php.net/manual/en/book.pdo.php)或['mysqli'](http://php.net/manual/en/mysqli.quickstart。 PHP)。原始的mysql函數是舊的,在某些情況下不安全。 – max 2014-09-23 09:07:43
對不起。對mysql錯誤的死,清楚地表明我可以是多麼愚蠢。我忘了帳戶,我做了「AccID」而不是「ID」......感謝一堆,現在修好了。 – Heartfire 2014-09-23 09:08:53