如何使MySQL列值等于PHP中的变量

时间:2017-11-28 17:13:43

标签: php mysql sql

我在我的数据库中有一个名为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()[''];

问题是数据库中没有要从此操作获取的列。我应该做些什么?感谢

1 个答案:

答案 0 :(得分:1)

想要实现,可以在一个mysql查询中完成,但如果你只是想要如何修复该代码:

您需要在字符串外使用$ cntrResult。尝试字符串连接。

首先你需要确保你有正确的值,因为$ cntrResult不是一个字符串对象,它是一个结果集:

$value = $result->fetch_assoc()['counter']

查询:

"UPDATE schools SET  rating = '" . $value . "' WHERE name = 'School1'";