【问题标题】:Fatal error: Call to a member function query() on a non-object in $run = $con -> query($query); [duplicate]致命错误:在 $run = $con -> query($query); 中调用非对象上的成员函数 query(); [复制]
【发布时间】:2018-02-16 02:22:57
【问题描述】:
<?php

$name= $_POST['name'];
$roll= $_POST['roll'];

$con= mysql_connect("localhost", "root","");
mysql_select_db("students");

$query = "update classmate SET name= '$name' where roll= $roll";
echo $query;

$run = $con -> query($query);
if($run){
    echo "data Has been Updated";

}
 else {
     echo "Data Has not Updated";
 }

?>

错误是:

致命错误:在 $run = $con -> query($query); 中对非对象调用成员函数 query();

【问题讨论】:

  • 检查变量$con,可能只是错误提示

标签: php html css mysql


【解决方案1】:

要捕获连接错误,您可以使用 try-catch 块:

try {
    $con= mysql_connect("localhost", "root","");
} catch (Exception $e) {
    echo 'Error: ' . $e->getMessage();
}

【讨论】:

    【解决方案2】:

    您可以使用此代码:

    $name= $_POST['name'];
    $roll= $_POST['roll'];
    $con= mysqli_connect("localhost", "root","","students");
    $query = "update classmate SET name= '$name' where roll= $roll";
    echo $query;
    $run = mysqli_query($con, $query);
    if($run){
      echo "data Has been Updated";
    } else {
      echo "Data Has not Updated";
    }
    

    【讨论】:

    • @AqibRana:如果这回答了您的问题,Stack Overflow 的工作方式,您可以通过单击旁边的复选标记“接受”答案,这会将其取消未回答的问题清单; details here.
    • 不幸的是,这里面有一个大的胖SQL注入漏洞,在任何情况下都不应该使用。 “这只是一个例子”并不是最好的回应——传播糟糕的安全实践可能会对现实世界产生影响。研究参数绑定并始终建议,即使是示例 - MySQL 和 MySQLi 也支持它。
    猜你喜欢
    • 1970-01-01
    • 2017-12-09
    • 2015-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-15
    • 1970-01-01
    相关资源
    最近更新 更多