PHP - Fatal error: Can't use method return value in write context
PHP - Fatal error: Can't use method return value in write context
大家好,请帮帮我,我在尝试连接我的数据库时遇到了这个错误。
致命错误:无法在 C:\wamp\www\ipsem6\include\membersite_config.php 的第 20 行
的写入上下文中使用函数 return 值
下面是我的代码`
$host="localhost";
$username="root";
$password="";
$link=mysqli_connect($host,$username,$password,"a8172058_portal");
if(isset($_POST["submit"]))
{
$name=$_POST["name"];
$email=$_POST["email"];
$username=$_POST["username"];
$pass=$_POST["password"];
$contactno=$_POST["contact1"];
$cont2=$_POST["contact2"];
$dob=$_POST["date"];
$role=$_POST["rle"];
$gender=$_POST["s"];
$qry="insert users values('$name','$email','$username','$pass','$contactno','$cont2','$dob','$role','$gender')";
$res=mysqli_query($link,$qry);
if(mysqli_query_rows($link)=false)
{
echo 'you have registered successfully';
}
else
{
echo 'registration failed';
}
?>`
我检查了很多解决方案但无法理解它们,因为我在数据库编程方面不太好..!
请帮我解决它,因为我明天必须提交我的项目。 :/
if(mysqli_query_rows($link)=false)
您正在尝试将值 false 赋值给函数return 值。
PHP 中的比较 运算符是==
。
if(mysqli_query_rows($link)==false)
而不是:
if(mysqli_query_rows($link)=false)
==
用于检查一个值(比较运算符),=
是赋值运算符。
您必须使用此代码:
if(mysqli_query_rows($link)){}
中的作业
if(mysqli_query_rows($link)=false)
没有意义;它应该是一个类型服从的比较运算符 ===
。
此外,没有这样的函数mysqli_query_rows()。也许您正在寻找 mysqli_fetch_row() or mysqli_num_rows()。 (但请注意,这些函数对结果标识符而不是数据库连接标识符进行操作。)
您正在执行 INSERT,因此没有要提取的数据。相反,查询本身将 return false
失败,所以正确的表示应该是:
if($res!==false)
(请注意,我使用了不等式运算符,因为 if
会导致您分支到成功。)无论如何,成功和错误应该取决于对输入的测试,而不是插入操作本身。
最后但同样重要的是,您的脚本容易受到 SQL injection.
的攻击
大家好,请帮帮我,我在尝试连接我的数据库时遇到了这个错误。
致命错误:无法在 C:\wamp\www\ipsem6\include\membersite_config.php 的第 20 行
的写入上下文中使用函数 return 值下面是我的代码`
$host="localhost";
$username="root";
$password="";
$link=mysqli_connect($host,$username,$password,"a8172058_portal");
if(isset($_POST["submit"]))
{
$name=$_POST["name"];
$email=$_POST["email"];
$username=$_POST["username"];
$pass=$_POST["password"];
$contactno=$_POST["contact1"];
$cont2=$_POST["contact2"];
$dob=$_POST["date"];
$role=$_POST["rle"];
$gender=$_POST["s"];
$qry="insert users values('$name','$email','$username','$pass','$contactno','$cont2','$dob','$role','$gender')";
$res=mysqli_query($link,$qry);
if(mysqli_query_rows($link)=false)
{
echo 'you have registered successfully';
}
else
{
echo 'registration failed';
}
?>`
我检查了很多解决方案但无法理解它们,因为我在数据库编程方面不太好..! 请帮我解决它,因为我明天必须提交我的项目。 :/
if(mysqli_query_rows($link)=false)
您正在尝试将值 false 赋值给函数return 值。
PHP 中的比较 运算符是==
。
if(mysqli_query_rows($link)==false)
而不是:
if(mysqli_query_rows($link)=false)
==
用于检查一个值(比较运算符),=
是赋值运算符。
您必须使用此代码:
if(mysqli_query_rows($link)){}
if(mysqli_query_rows($link)=false)
没有意义;它应该是一个类型服从的比较运算符 ===
。
此外,没有这样的函数mysqli_query_rows()。也许您正在寻找 mysqli_fetch_row() or mysqli_num_rows()。 (但请注意,这些函数对结果标识符而不是数据库连接标识符进行操作。)
您正在执行 INSERT,因此没有要提取的数据。相反,查询本身将 return false
失败,所以正确的表示应该是:
if($res!==false)
(请注意,我使用了不等式运算符,因为 if
会导致您分支到成功。)无论如何,成功和错误应该取决于对输入的测试,而不是插入操作本身。
最后但同样重要的是,您的脚本容易受到 SQL injection.
的攻击