控制台程序
跑了一天,报了个错误,不知道是怎么回事
–
exception ‘CDbException’ with message 'CDbCommand failed to execute the SQL stat
ement: SQLSTATE[HY000]: General error: 1317 Query execution was interrupted. The
SQL statement executed was: select id from gm_software_brand where name=:bran
dName limit 1. Bound with :brandName=Internet Cleanup Mac’ in D:\webserver\webdo
c\free\framework\db\CDbCommand.php:518
代码是:
$bid = Yii::app()->db->createCommand(“select id from {{software_brand}} where name=:brandName limit 1”)->queryScalar(array(’:brandName’ => $brandName));
我查了mysql的错误代码
–
Error: 1317 SQLSTATE: 70100 (ER_QUERY_INTERRUPTED)
Message: Query execution was interrupted
说是查询被中断,这个不知道是什么意思?在什么情况下会出这种错误
我发现程序运行一段时间后一定会报这个错误,不知道是怎么回事,代码应该是正确的
我把代码贴下,主要就是从pad(Portable Application Description)文件中导入软件信息,省略了部分代码
class TestCommand extends CConsoleCommand {
public function actionImport($nnn) {
//$args[0]代表要读取哪个url文件
//命令:yiic test
require Yii::getPathOfAlias('ext.padsdk.include') . DIRECTORY_SEPARATOR . 'xmlfile.php';
//$urlFile = Yii::getPathOfAlias('application.data') . DIRECTORY_SEPARATOR . 'padurl.csv';
$urlFile = Yii::getPathOfAlias('application.data') . DIRECTORY_SEPARATOR . $nnn.'-pad.data';
$urls = file($urlFile);
$author = 56;
$time = time();
$datetime = date('Y-m-d H:i:s');
foreach ($urls as $iNum=>$url) {
echo "\n $iNum \n";
/////////////////////////////////查询软件之前是否通过pad导入,存在则进行下个循环///////////////////////////////////////////////
$exist=Yii::app()->db->createCommand("select 1 from {{software}} where padUrl='$url' limit 1")->queryScalar();
if ($exist) {
//echo "\nalready exist\n";
continue;
}
////////////////////////////////////////////////////////////////////////////////
$XMLFile = new XMLFile($url);
$XMLFile->OutputEncoding="UTF-8";
if (!$XMLFile->Load()) {
//echo "#$url#Cannot load XML.Error Num:{$XMLFile->LastError}. Error Msg: " . $XMLFile->LastErrorMsg . "\n";
continue;
}
$company = $XMLFile->XML->GetValue("XML_DIZ_INFO/Company_Info/Company_Name"); //公司名
$brandName = $XMLFile->XML->GetValue("XML_DIZ_INFO/Program_Info/Program_Name"); //品牌名
$brandName=trim($brandName);
if (empty ($brandName)) {
continue;
}
$version = $XMLFile->XML->GetValue("XML_DIZ_INFO/Program_Info/Program_Version");
$name=$brandName.' '.$version; //软件名
$names=QUtil::prepareUrlText($name);
//查询品牌是否存在,获取bid,如果不存在,创建并获取bid
$bid = Yii::app()->db->createCommand("select id from {{software_brand}} where name=:brandName limit 1")->queryScalar(array(':brandName' => $brandName));
$windowsClass=DcTable::model()->getWindowsId();
if (false === $bid) {
Yii::app()->db->createCommand()->insert('{{software_brand}}', array(
'auditing' => 'Y',
'sid' => 0,
'class' => $windowsClass,
'level' => 0,
'platform' => Software::PLATFORM_WINDOWS,
'name' => $brandName,
'names' => $names,
'author' => $author,
'timeStamp' => $time,
));
$bid=Yii::app()->db->getLastInsertID();
}
}
}
}