我正在尝试对表的特定行运行更新,并在每次更新运行时将列的内容增加一个。但是在某些时候查询不会运行,也不会产生异常。有谁知道为什么会这样?我尝试了以下方法:
$intVersion = $this->intVersion + 1;
$strSql=<<<EOT
UPDATE $this->strQueryTable SET version = '$intVersion' WHERE id = $this->id;
EOT;
$blnQueryOk = mysql_query ( $strSql );
$intVersion = $this->intVersion + 1;
$strSql =<<<EOT
UPDATE $this->strQueryTable SET version = $intVersion WHERE id = $this->id;
EOT;
$blnQueryOk = mysql_query ( $strSql );
$strSql =<<<EOT
UPDATE $this->strQueryTable SET version = version + 1 WHERE id = $this->id;
EOT;
$blnQueryOk = mysql_query ( $strSql );
在所有情况下:
if (!$blnQueryOk) {
throw new Exception(mysql_error ());
return false;
}
所有这些都在不产生异常的情况下有时无法更新。
最佳答案
- 可能实际上是数据库连接调用失败了(由于某些与数据库相关的问题,如网络问题或太多 mysql 连接等)。您可以尝试这样做:
- 在您的
mysql_connect()
调用之后,验证数据库连接资源是否确实已创建,如果返回值为假,则开始抛出异常。
- 在您的
mysql_error()
没有产生任何结果的一个非常常见的原因是当您在同一个进程中打开多个数据库连接时。为避免这种情况:- 在所有的
mysql_query()
和mysql_error()
调用中,也开始将数据库连接资源作为参数传递。
- 在所有的
关于php - mysql_query & update 查询未执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7445859/