我在我的数据库中有一个名为counter的列,我试图将该列的一行保存到PHP中的变量中并使其等于列等级。我不想直接从sql中创建它,我需要通过php来实现它。 问题是,当我运行查询时,评级的值根本不会改变。请给我一个解决方案
$cntrvalue = "SELECT counter FROM schools WHERE name = 'School1'";
$cntrResult = $this->conn->query($cntrvalue);
$mys1 = "UPDATE schools SET rating = $cntrResult WHERE name = 'School1'";
$this->conn->query($mys1);
由于
编辑:
很抱歉上面的代码出错了,这是不改变任何内容的代码
$cntrvalue = "SELECT counter FROM schools WHERE name = 'School1'";
$this->conn->query($cntrvalue);
$mys1 = "UPDATE schools SET rating = $cntrvalue WHERE name = 'School1'";
$this->conn->query($mys1);
编辑2: 我现在要做的是,我试图获得SUM查询的价值:
$mys4 = "SELECT SUM(`s1`+`s2`*2 +`s3`*3 + `s4`*4 + `s5`*5) FROM schools WHERE name = 'School1'";
$mys4Result = $this->conn->query($mys4);
$mys4Value = $mys4Result->fetch_assoc()[''];
问题是数据库中没有要从此操作获取的列。我应该做些什么?感谢
答案 0 :(得分:1)
想要实现,可以在一个mysql查询中完成,但如果你只是想要如何修复该代码:
您需要在字符串外使用$ cntrResult。尝试字符串连接。
首先你需要确保你有正确的值,因为$ cntrResult不是一个字符串对象,它是一个结果集:
$value = $result->fetch_assoc()['counter']
查询:
"UPDATE schools SET rating = '" . $value . "' WHERE name = 'School1'";