控制台程序报错,帮看看

控制台程序

跑了一天,报了个错误,不知道是怎么回事

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();

			}

            }

        }

}