Php 尝试使用if函数获取非对象的属性
错误: 注意:试图在第16行的C:\Users\Gustavs\Documents\EasyPHP\test2\register.php中获取非对象的属性Php 尝试使用if函数获取非对象的属性,php,Php,错误: 注意:试图在第16行的C:\Users\Gustavs\Documents\EasyPHP\test2\register.php中获取非对象的属性 注意:试图在第20行的C:\Users\Gustavs\Documents\EasyPHP\test2\register.php中获取非对象的属性 代码: 16行: if ($result->num_rows == 1) { 20行: if ($result->num_rows == 1) { 试试这个: $exist
注意:试图在第20行的C:\Users\Gustavs\Documents\EasyPHP\test2\register.php中获取非对象的属性 代码: 16行:
if ($result->num_rows == 1) {
20行:
if ($result->num_rows == 1) {
试试这个:
$exists = '';
if($result = $connect->query('SELECT username FROM users WHERE username = "'.$username.'" LIMIT 1')){
if($result->num_rows == 1){
$exists = 'u';
}else{
die;
}
}
if($result = $connect->query('SELECT email FROM users WHERE email = "'.$email.'" LIMIT 1')){
if($result->num_rows == 1){
$exists = 'e';
}else{
die;
}
}
或者,根据您检查查询是否成功的方式,您可以执行以下操作:
$exists = '';
if($result = $connect->query('SELECT username FROM users WHERE username = "'.$username.'" LIMIT 1')){
if($result->num_rows == 1){
$exists = 'u';
}
return true;
}else{
return false;
}
if($result = $connect->query('SELECT email FROM users WHERE email = "'.$email.'" LIMIT 1')){
if($result->num_rows == 1){
$exists = 'e';
}
return true;
}else{
return false;
}
甚至:
$exists = '';
if($result = $connect->query('SELECT username FROM users WHERE username = "'.$username.'" LIMIT 1')){
if($result->num_rows == 1){
$exists = 'u';
}
echo 'Success!';
}else{
echo 'Failure!';
}
if($result = $connect->query('SELECT email FROM users WHERE email = "'.$email.'" LIMIT 1')){
if($result->num_rows == 1){
$exists = 'e';
}
echo 'Success!';
}else{
echo'Failure';
}
我希望这有帮助 您的查询失败,但未检查错误<代码>如果(!$result)回显$connect->错误这可能是因为变量
$username
在SQL字符串中没有正确地单引号引起来,$email
同样如此。如果$username
是字符串值,则需要在查询中将其作为字符串值引起来,else SQL将假定它是users表中的一个列名,但更好的是,如果您使用准备好的语句/绑定变量,而不需要使用quotesSee获取有关引用的信息,但是这个问题可以避免,同时也可以通过在MySQLi中使用来提高安全性。虽然除了我对您的原始PHP所做的修改之外,您可能不会使用我提供的任何示例,但我想确保阅读本文的任何其他人都能够从中受益
$exists = '';
if($result = $connect->query('SELECT username FROM users WHERE username = "'.$username.'" LIMIT 1')){
if($result->num_rows == 1){
$exists = 'u';
}
echo 'Success!';
}else{
echo 'Failure!';
}
if($result = $connect->query('SELECT email FROM users WHERE email = "'.$email.'" LIMIT 1')){
if($result->num_rows == 1){
$exists = 'e';
}
echo 'Success!';
}else{
echo'Failure';
}