在非对象

时间:2017-05-24 17:55:07

标签: php sql

我是php和sql的新手。 我试图建立一个聊天网络,但我在PHP中有太多错误,它连接到数据库,但我无法在我的数据库中插入东西。 我当时有两个难以理解的错误,

1

 FATAL ERROR:Call to a member function mysqli_num_rows() on a non-object in E:\xamp\htdocs\chatting\post.php on line 20

2

 NOTICE:undifined index: in E:\xamp\htdocs\chatting\post.php on line 13

提供这些错误的php脚本是

  <?php
  $connect= new mysqli('localhost', 'root','' ,'user');



  if($connect->connect_error){

  die('connection failed bruh');

 } else 

 echo 'connected';
 $message= $_POST[`message`];
 $name= $_POST[`name`];

 $sql = 'INSERT INTO user (name, message) VALUES (`{$name}`, `{$message}`)';

 $result = $connect-> query($sql);

 if ($result->mysqli_num_rows($sql) > 0){
  while ($row=$result->fetch_assoc()){
     echo  $row[`$message`];
 }

 } else 
   echo  '<br> problem';
 ?>

我的sql数据库的表名是user,它有三个colmns

 1.id (which is set to auto increment)
 2.name
 3.message

如果有人可以帮我摆脱这些将非常感谢,如果我的PHP代码中有更多错误,请告诉我

2 个答案:

答案 0 :(得分:-1)

此处有一个空格:$result = $connect->" "query($sql);,将其删除并重试。

确保避免在不适当的地方间隔。

另外,正如我所说的那样,而不是$message= $_POST[消息];$message= $_POST['message'];。不要在关联数组键名上使用反引号。

答案 1 :(得分:-1)

看起来你正试图回应正在发布的内容但是你试图通过为INSERT创建一个循环来实现这一点。你应该循环一个SELECT。这里有两种选择。最简单的是回应所提交的内容:

echo $message;

如果您尝试执行的操作是验证查询是否为真,那么您可以执行以下操作:

if ( $result = $connect-> query($sql) )
{
    echo $message;
} else
{
    echo  '<br> problem';
}