我需要能够比较列中的值,而不是值在列中出现的次数。 我有多个表,它们都具有相同的20列“标题”条目,但另一列“ position_order”是数字的不同值。 我有一个具有“正确”值的基表,我想遍历“标题”列中的每个名称,并计算它们的“ position_order”与我的基本案例表的“ position_order”之间的差异
我相信所有功能都可以正常运行,但是当我查询数据库以查找由于某种原因而为“ position_order”列存储的值时,它将不会作为我可以进行计算的数字返回。
imfile
这是错误日志
[2019年5月16日22:19:48 UTC] PHP注意:类mysqli_result的对象无法在第75行的/Applications/MAMP/htdocs/user.php中转换为数字
答案 0 :(得分:0)
请参阅mysqli_query
的文档:https://www.php.net/manual/en/mysqli.query.php
返回值
对于成功的SELECT,SHOW,DESCRIBE或EXPLAIN查询,mysqli_query()将返回mysqli_result对象。对于其他成功的查询,mysqli_query()将返回TRUE。
$position1
和$position2
是对象实例,而不是数据库中的字段。从来没有永远使用过mysqli,但您可能想改用fetch_all
?
答案 1 :(得分:0)
此:
$result = $mysqli->query($sql1);
if ( ! $result ) {
throw new Exception('Query 1 failed');
}
返回一个mysqli_result对象,而不是一个数字。您必须从中提取实际结果。
if ( $result->num_rows ) {
$row = $result->fetch_assoc();
$position1 = $row['position_order'];
}
$result->close();
$result = $mysqli->query($sql2);
if ( ! $result ) {
throw new Exception('Query 2 failed');
}
if ( $result->num_rows ) {
$row = $result->fetch_assoc();
$position2 = $row['position_order'];
}
$result->close();
if ( isset($position1) && isset($position2) ) {
$abs = abs($position1-$position2);
} else {
$abs = null;
}
// output here