Fatal error: Call to a member function …on string
本问题已经有最佳答案,请猛点这里访问。
连接在这里
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | class connection{ private $hostname ="localhost"; private $username ="root"; private $password =""; private $database ="idea"; private $conn; public function __construct(){ $this->conn = new mysqli($this->hostname, $this->username, $this->password, $this->database)or die("Error Connection To MySQL"); } public function getConn(){ return $this->conn; } ?> |
我怀疑这两者之间的联系,只是为了以防万一…它适用于所有其他查询,但谁知道呢。
第二,这里的包袱都是这样的
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <?php session_start(); if ($_SESSION['loggedin'] != 1) { header('location: index.php'); } include 'connection.php'; include 'users.php'; include 'ideas.php'; $conn = new connection(); $user = new users($conn->getConn()); $idea = new ideas($conn->getConn()); ?> |
倒数第二个问题是我在一个类中的查询
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <?php class ideas{ private $conn; public function __construct($db){ $this->conn = $db; } public function checkIdea($title){ $result = $this->conn->query("SELECT * FROM ideas WHERE title = '$title'"); return $result; } ?> |
最后,这里是我在主页上调用的功能!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <?php if (isset($_POST['addidea'])) { $title = mysql_real_escape_string($_POST['title']); $idea = mysql_real_escape_string($_POST['idea']); $check = $idea->checkIdea($title); // <-- sais this is the error here... if ($check->num_rows == 0) { echo $idea->getUserId($_SESSION['username']); }else{ echo"Sorry that iDea title is already taken, please use another!"; } } ?> |
我不知道它为什么这样做,这是什么错误,我以前从来没有遇到过(调用字符串上的成员函数),我使用了相同的查询/布局作为登录等,不知道它为什么这样做,任何答案都值得赞赏。
你正在做:
1 |
所以现在$IDEA是一个字符串。然后你这样做:
1 | $check = $idea->checkIdea($title); |
字符串上没有checkIdeam方法。