![](/img/trans.png)
[英]mysqli_num_rows keeps returning 1 while 0 should be the answer PHP
[英]php: mysqli_num_rows is returning 0
我知道這可能是重復的:
PHP-MYSQLI_NUM_ROWS始終返回0
PHP-mysqli_num_rows()始終返回0
問題是他們都沒有給我答案。
這是我的代碼示例代碼,語法與我使用的語法相同。
index.html
<html>
<head><title>GAS - Give Away System - Create User</title></head>
<body>
<script src="jquery.js"></script>
<input type="text" placeholder="Username" id="uname" /><br><br>
<p id="errors"></p>
<script>
$(document).ready(function(){
$.ajaxSetup({cache:false});
setInterval(function(){
$("#errors").load("php/errorchecking.php?c=username&v="+document.getElementById('uname').value);
}, 500);
});
</script>
</body>
</html>
php / errorchecking.php
<?php
$con = mysqli_connect('localhost', 'root', '', 'gas');
if(isset($_GET['c']) && isset($_GET['v'])){
echo 'Current value: ', $_GET['v'], '<br>This value is set for: ', $_GET['c'], '<br><br>';
if($_GET['c']==="username"){
if($_GET['v']===null){
echo "Sorry, this username is empty! Please write a username!";
}else{
// I know this is open for SQL Injection, it's not in my worries.
$query = "SELECT `username` FROM `users` WHERE `username` ='{$_GET['v']}'";
$sql = $con->query($query);
if(mysqli_num_rows($sql) > 0){
echo "Sorry, this username is already in use! Please choose something else";
}else{
echo "Username avaible!"; //This is line 17
}
}
}
}else{
echo 'This is an invalid form!';
}
?>
現在,假設我在表中有一個名為User15的用戶名,某人的輸入與之完全相同,它將顯示消息"Username available!"
Line : 17 從 行 : 17
為什么這樣做呢? 因為那里已經是一個名為User15
的用戶,所以它應該顯示的是"Sorry, this username is already in use! Please choose something else"
感謝您抽出寶貴的時間來幫助我! 塞西莉。
這是錯誤的查詢語法方式。 您需要使用反單引號,而不是'
S:
$query = "SELECT username FROM `users` WHERE 'username'='".$_GET['v']."'";
//-------------------------------------------^--------^
更改為:
$query = "SELECT `username` FROM `users` WHERE `username`='".$_GET['v']."'";
注意:
``
-對於列。 ''
-對於值。 您必須從查詢中刪除列名周圍的'
(單引號),如下所示:-
$query = "SELECT `username` FROM `users` WHERE `username`='".$_GET['v']."'";
注意:-使用反引號代替'
(單引號)。 因為單引號( '
)也用於值,反引號也用於column-name
和table-name
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.