Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PHP中使MySQL列值等于变量_Php_Mysql_Sql - Fatal编程技术网

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

如何在PHP中使MySQL列值等于变量,php,mysql,sql,Php,Mysql,Sql,我的数据库中有一个名为counter的列,我试图将该列中的一行保存到PHP中的一个变量中,并使其与列评级相等。我不想直接从sql生成,我需要通过php生成。 问题是,当我运行查询时,评级的值根本没有改变。请给我一个解决办法 $cntrvalue = "SELECT counter FROM schools WHERE name = 'School1'"; $cntrResult = $this->conn->query($cntrvalue); $mys1 = "UPDATE sch

我的数据库中有一个名为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: 我现在要做的是,我试图获取求和查询的值:

$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()[''];

问题是数据库中没有可用于此操作的列。我该怎么办?感谢

您想要实现的功能,可以在一个mysql查询中完成,但如果您只想修复代码:

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

首先,您需要确保具有正确的值,因为$cntrResult不是字符串对象,而是结果集:

$value = $result->fetch_assoc()['counter']
以及查询:

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

请尝试
rating='$cntrResult'
@A.ANoman未工作:(
$cntrResult
是结果集,而不是实际值….您需要获取结果并从中获取值请参阅关于JOINs@MarkBakermysql_fetch_object函数不是贬值了吗?我还能用吗?确保你没有忘记其中一个“/“,如果没有,您可以打印/回显$值以进行检查,缩小错误范围。@PatrickPirker先生,我正试图对另一段代码执行相同的操作。但这次我选择的不是列,而是总和:选择总和(
s1
+
s2
*2+
s3
*3+
s4
*4+
s5
*5)从名称为'School1'的学校开始,我怎么能做上面同样的事情呢?我尝试用同样的方法实现它,但没有成功。问题是函数fetch_assoc()['];没有实际的栏目可供选择。我该怎么办?@SaudAbdelaziz非常感谢您的热情,但据我所知,选择完全是多余的。@草莓你是什么意思,我是PHP的初学者