[英]PHP Trouble Getting Data From Mysqli Table
在任何人评判之前...我已经检查了其他有类似问题的帖子,但仍然无法解决我的问题。
我还检查并阅读了PHP手册,但是使用不同的方法来提取数据没有任何运气。 我的意思是我确实提取了一个表,该表甚至具有正确的行数。 但是,所有行都具有相同的信息:第一行,指示标题的行,例如:FirstName,Phone,Address等。
下面的代码仅显示了我的操作方式。 我重申,mysqli连接确实在提取具有正确行数的数据表。 但是我没有得到正确的信息。
public function queryexec()
{
if(isset($this->query))
{
//execute prepared query and store in result variable.
$this->result = $this->connection->query($this->query);
echo 'Table Row Count: '. $this->result->num_rows;
echo '<br/>';
//fetch_array gives me table but only headers but correct amount of rows.
//Fetch_object doesnt work throws me error:
//Fatal error: Cannot use object of type stdClass as array
while($row = $this->result->fetch_array()){
printf ("%s (%s)\n", $row[0], $row[2][1]);
//echo 'Table Data: '. $newdata["LastName"];
//echo '<br/>';
}
return true;
}
return false;
}
您正在调用fetch_object(),但是随后您将访问行元素,就好像它是一个序数数组一样。
您应该访问诸如对象$row->LastName
的字段之类的列$row->LastName
或者更改获取行的方式以使用$this->result->fetch_array()
。
我刚刚使用PHP 5.3.26和MySQL 5.6.13测试了您的代码。 我没有错误,并且所有三行都有不同的数据:
mysql> show create table test.foo\G
CREATE TABLE `foo` (
`id` int(11) NOT NULL,
`z` int(11) DEFAULT NULL,
`LastName` text,
`t` text,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
mysql> insert into foo (id, lastname) values
(1, 'Granger'), (2, 'Potter'), (3, 'Weasley');
$ php 19236839.php
Table Row Count: 3<br/>
1 (r)
2 (o)
3 (e)
请注意, $row[2][1]
返回单个字符,即字符串中的第二个字符。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.