Php 只更新数据库中的一个表
每当我执行更新查询时,我的整个表都会更新。当我只想更新一个值时,我该怎么办 以下是我的数据库结构:Php 只更新数据库中的一个表,php,mysql,Php,Mysql,每当我执行更新查询时,我的整个表都会更新。当我只想更新一个值时,我该怎么办 以下是我的数据库结构: ID || photo || sequence 1 || test.png || 1 2 || bla.png || 2 每当我执行这个脚本时 if (isset($_POST['submitted'])) { $project = new Project(); $project->sequen
ID || photo || sequence
1 || test.png || 1
2 || bla.png || 2
每当我执行这个脚本时
if (isset($_POST['submitted'])) {
$project = new Project();
$project->sequence = $_POST['sequence'][$key];
$projectid = $_POST['photoid'];
if($project->updateProject($_DB, $projectid)) {
$feedback = "OK";
} else {
$feedback = "NOT OK";
}
}
结果如下:
ID || photo || sequence
1 || || 4
2 || || 2
那么,我要怎么做才能更新数据库中的序列
-值而不触及数据库中的其余数据
功能:
public function updateProject($db, $id) {
$sql = "UPDATE tblProject SET
sequence = '".$db->escape($this->sequence)."'
WHERE id = '".$id."'";
return $db->insert($sql);
}
public function insert($sql) {
mysql_query($sql, $this->_connection);
return mysql_affected_rows($this->_connection);
}
插入函数:
public function updateProject($db, $id) {
$sql = "UPDATE tblProject SET
sequence = '".$db->escape($this->sequence)."'
WHERE id = '".$id."'";
return $db->insert($sql);
}
public function insert($sql) {
mysql_query($sql, $this->_connection);
return mysql_affected_rows($this->_connection);
}
基本上,每当您遇到这个问题时,您都在更新表,而不使用任何WHERE子句。如下面的代码所示:
UPDATE myTable SET myField = 'newValue';
在这种情况下,所有存储的记录都将更新为新值
在查询中使用WHERE子句仅更新一条或某些指定记录
UPDATE myTable SET myField = 'newValue' WHERE tableId = 'yourId';
$project->updateProject()函数肯定有问题
尝试使用简单查询:
$qry = "UPDATE tblProject SET sequence = '".$project->sequence."'
WHERE ID =".(int)$projectid.";
mysql_query($qry);
我确实在我的updateProject
-函数中包含了一个WHERE
子句,不是吗?如果您有,我认为您在运行查询时出现了一些错误。你能检查一下是否有错误吗?好的,我有一个建议。启用常规日志并查看查询。可能在脚本的另一部分中运行了另一个查询。当您看到查询时,您可能能够将其追溯到代码。