这是我的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。如果您没有看到它,没关系。我花了几分钟去了"啊哈"