SQL num_row返回0,即使存在一行



这是我的php脚本。首先,它将一排数据插入数据库。然后,它再次(在同一脚本中(进行该行。但是现在它返回0行。但是,输入的行存在在数据库中。

,当我创建数据库时也有两个行。如果我编写查询以获取那条旧行,它将返回毫无问题的值。

也可以很好地工作。
$conn = new mysqli($sever, $uname, $pass, $dbname);
if ($conn->connect_error) {
  die("Internal Server Error!");
}
//add new row
$un = $_POST['uname'] ;
$ue =  $_POST['uemail'];
$up = $_POST['upass'];
$sql = "INSERT INTO TBuser (username, email, password, serverID) 
  VALUES('" . $un . "',' " . $ue . "',' " . $up . "', '1')";
$conn->query($sql);
if ($conn->query($sql) === FALSE) {
  die("Internal Server Error! Ex000105 0 <br>" .
                        mysqli_error($conn) . '<br>'. $sql);
}
$sql = "SELECT * FROM TBuser WHERE email LIKE '" . $ue . "'";
$results = $conn->query($sql);
if ($results->num_rows == 0) {
  die("Internal Server Error! Ex000105 1". 
  mysqli_error($conn) . '<br>'.       sql . '<br>' 
  . mysqli_error  ($conn) . '<br>'. $results->num_rows );     
 }

这是我的桌子。当数据库创建时,由另一个PHP脚本创建前两个行。第三行是由上述脚本创建的。

mysqli_error($ conn(没有返回任何错误消息。

Array ( [userID] => 1 [username] => namindu [email] => namindu@live.com [password] => oh!mygod [serverID] => 1 ) 
Array ( [userID] => 2 [username] => kamal [email] => namindus8@live.com [password] => oh!mygod [serverID] => 1 ) 
Array ( [userID] => 56 [username] => Namindu [email] => nn@h.com [password] => k [serverID] => 1 ) 

感谢您的帮助。

您看到了吗?

$sql = "INSERT INTO TBuser (username, email, password, serverID)VALUES('" . $un . "',' " . $ue . "',' " . $up . "', '1')";

现在怎么样?

 ' " . $ue . "'

space {email},然后在您的搜索LIKE '" . $ue . "'中没有通配符。但是,您确实有一些SQLINFOCTIONS。

但要清楚:

   " $ue" != "$ue"   /// ie. email = ' name@example.com';

如果您已经完成了LIKE '%".$ue."',则不会注意到这一切。您还在这里有一个' ".$up."'以获取密码,可以肯定的是,这也会创建一些问题。但是您可以使用"准备好的语句"来解决所有这些问题,因为使用准备好的语句,您只将?放入mysqli,而无引号。...

P.S。如果您没有看到它,没关系。我花了几分钟去了"啊哈"

最新更新