PHP - 致命错误:无法在写入上下文

时间:2016-04-20 10:28:13

标签: php database phpmyadmin wampserver

嘿伙计们,请帮助我,当我尝试连接我的数据库时,我遇到了这个错误。

致命错误:无法在第20行的C:\ wamp \ www \ ipsem6 \ include \ membersite_config.php中的写入上下文中使用函数返回值

以下是我的代码

$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';
    }


?>` 

我检查了很多解决方案,但却无法理解它们,因为在数据库编程方面不太好...... 请帮助我,因为我必须明天提交我的项目。 :/

4 个答案:

答案 0 :(得分:2)

if(mysqli_query_rows($link)=false)

您正在尝试赋值给函数返回值。

PHP中的比较运算符为==

答案 1 :(得分:0)

if(mysqli_query_rows($link)==false) 

而不是:

if(mysqli_query_rows($link)=false)

==用于检查值(比较运算符),=是赋值运算符。

答案 2 :(得分:0)

您必须使用此代码:

 if(mysqli_query_rows($link)){}

答案 3 :(得分:0)

中的作业
if(mysqli_query_rows($link)=false)

没有意义;它应该是一个类型服从的比较运算符===

此外,没有这样的函数mysqli_query_rows()。也许您正在寻找mysqli_fetch_row()mysqli_num_rows()。 (但请注意,这些函数对结果标识符而不是数据库连接标识符进行操作。)

您正在执行INSERT,因此无法获取数据。相反,查询本身将在失败时返回false,因此正确的表示应为:

if($res!==false)

(请注意,我使用了不等式运算符,因为if会导致成功分支。)无论如何,成功和错误应该依赖于对输入的测试而不是插入操作本身。

最后但并非最不重要的是,您的脚本容易受到SQL injection的攻击。<​​/ p>