在這一個我不介意。這裏的情況和我迄今爲止的嘗試:MySQLi插入到語句中插入數據,但也顯示錯誤
我有一個簡單的表單,收集一個電子郵件和密碼,然後應該插入到三列數據庫表中。該表格被稱爲users
,三列被稱爲userID
,userEmail
,userPassword
。這裏是我的出發代碼:
// hash the password value
$pass = hash_hmac('sha256', $p, 'c#hArl891', true);
// Query the database:
$q = "INSERT INTO users (userEmail, userPassword) VALUES ('".$e."','".$pass."')";
$r = mysqli_query ($dbc, $q);
if (mysqli_num_rows($r) == 1) { // Successful insertion.
如何處理此代碼發生的是電子郵件(可變$e
)在數據庫中出現了正確的密碼是亂碼一塌糊塗(只是一個枝節問題),但mysqli_num_rows($r)
返回此錯誤:
mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given
我試過只用$ p替換哈希值,我試着更換與常量兩個變量,我用周圍的表名和字段名背部蜱嘗試過了,我我嘗試了一個建議,我在網上找到使用大括號:
$q = "INSERT INTO users (`userEmail`,`userPassword`) VALUES ('{$e}','{$pass}')";
似乎沒有什麼工作得到mysqli_num_rows($r) == 1
。
根據返回的錯誤訊息,我看到的變量值:
[e] => [email protected]
[p] => 12345
[pass] => Ç o’,YÊ2ý€|y:fز"?ïÑ`{a]YÑ=Âk¼
[q] => INSERT INTO `users` (`userEmail`, `userPassword`) VALUES ('[email protected]', 'Ç o’,YÊ2ý€|y:fز"?ïÑ`{a]YÑ=Âk¼')
[r] => 1
和
[dbc] => mysqli Object
這些似乎表明,$r
DOES等於1
但這是直接取自相同的錯誤信息。
我整晚都在睡覺,我想這一定是顯而易見的事情,我只是過分看,但我看不到它。
確定了主要問題;錯誤信息消失了,我能夠正確地觸發條件。非常感謝你! –
不客氣。在你的散列問題上增加了一些輸入。 –
謝謝你的散列信息。如果可以的話,我會將問題標記爲兩次。非常感激。 –