Php 尝试获取非对象的属性“id”时出错,但对象似乎已
我第一次使用php。 我只是想从数据库中获取数据。这是我的密码-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
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'];