Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 尝试获取非对象的属性“id”时出错,但对象似乎已_Php_Mysql - Fatal编程技术网

Php 尝试获取非对象的属性“id”时出错,但对象似乎已

Php 尝试获取非对象的属性“id”时出错,但对象似乎已,php,mysql,Php,Mysql,我第一次使用php。 我只是想从数据库中获取数据。这是我的密码- try{ ///try to connect with database $conn=new PDO("mysql:host=localhost:3306;dbname=try", "root", "abcdef12"); $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPT

我第一次使用php。 我只是想从数据库中获取数据。这是我的密码-

        try{
            ///try to connect with database
            $conn=new PDO("mysql:host=localhost:3306;dbname=try", "root", "abcdef12");
            $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        }
        catch(PDOException $ex){
            echo "error";
        }
        $mysqlcode="SELECT * FROM users";
        $ret=$conn->query($mysqlcode);
        foreach($ret as $ret1)
        print $ret1->id;
在浏览器中, 显示此错误:注意:尝试在第44行的/opt/lampp/htdocs/secAsite/verifylogin.php中获取非对象的属性“id”4次。在用户表中,我有4个数据。
在这里,为什么$ret看起来不是对象。我没发现有什么不对劲。如何获取数据。或者调试对象。

您没有获取数据,因为您没有获取数据。。 在打印数据之前,必须先获取数据 更新代码

$mysqlcode = "SELECT * FROM users";
$ret = $conn->query($mysqlcode);

if ($ret->num_rows > 0) {
  // output data of each row
  while($row = $ret->fetch_assoc()) {
    echo "id: " . $ret["id"] . "<br>";
  }
} else {
  echo "0 results";
}
$conn->close();

这很好。

在尝试使用面向对象的PHP之前,更容易理解过程。请看下面的代码

首先,连接到数据库:

<?php   
//Store log in info into variables
    $servername = 'localhost';
    $serveruser = 'youruser';
    $serverpassword = 'yourpassword';
    $serverdatabase = 'yourdatabase';

    // Create connection
    $conn = mysqli_connect( $servername, $serveruser, $serverpassword, $serverdatabase );

    if ( !$conn ) {echo "Connection Fail" . mysqli_connect_error();}
    //else {echo "Connected to database $serverdatabase";}
?>
现在,您可以使用数组使用print\r打印结果


它将打印出所有的ID。希望这有帮助。

我已经检查了你的代码。一切都很好。就这么做吧

您是否尝试打印$ret1['id']。如果出现这样的错误,请尝试var_cump$ret1;查看数据实际包含的内容及其类型。
$sql = "SELECT * FROM `table`";
$result = mysqli_query($conn, $sql);
$data = mysqli_fetch_all($result, MYSQLI_ASOCC);
mysqli_free_result($result);
echo '<pre>'; print_r($data); echo '</pre>';}
<?php foreach ($data as $value){
echo $value['id]."<br>";
} ?>
         foreach($ret as $ret1)
            print $ret1['id'];