我有一个执行MySQL查询的脚本:
/*
* Gets total number of rows
*/
$resultscount = executeSQL("SELECT COUNT(*) FROM `KeywordTokens New` WHERE `IsItSubjectTerm`=''");
$total = $resultscount->fetch_row();
d($total[0]);
...
$dbU2Query = "UPDATE `KeywordTokens New` SET `IsItSubjectTerm` = 'YesByF2' ".$regexp2;
$dbU3Query = "UPDATE `KeywordTokens New` SET `IsItSubjectTerm` = 'NoByF2' ".$regexp3;
$results2 = executeSQL($dbU2Query);
$results3 = executeSQL($dbU3Query);
var_dump($results2);
d($results2);
var_dump($results3);
d($results3);
d()是一个自定义函数,与var_dump()非常相似。
function executeSQL ($dbQuery1) {
global $mysql_host, $mysql_user, $mysql_pw, $mysql_db;
$mysqli = new mysqli($mysql_host, $mysql_user, $mysql_pw, $mysql_db);
//$mysqli = new mysqli('localhost','root','root','OCLC', '3306', '/Applications/MAMP/tmp/mysql/mysql.sock');
//Output any connection error
if ($mysqli->connect_error) {
die('Error : ('. $mysqli->connect_errno .') '. $mysqli->connect_error);
}
//MySqli Insert Query
//$mysqli->query( 'SET @@global.max_allowed_packet = ' . strlen( $dbQuery1 ) + 1024 );
d($dbQuery1);
$result = $mysqli->query($dbQuery1);
print $mysqli->error;
d($result);
if (!$result) {
printf("%s\n", $mysqli->error);
}
echo (DEBUG ? "<><><><><>".strlen($dbQuery1): "");
return $result;
}
奇怪的是,输出不是我的预期。我在mysql.general_log中启用了查询的记录,我发现一个意外的查询与上面的代码一起被触发,并且它一直在发生。
UPDATE `KeywordTokens New` SET `IsItSubjectTerm` = 'NoByF1' WHERE `Keyword` LIKE '%%'
没有其他用户和其他脚本正在执行。
这是怎么回事?