У меня есть функция для вставки CSV-файлов в базу данных. Мой проект с использованием Yii Framework, но этот класс не связан Yii.Значение переменной differrent при использовании var_dump()
Импорт успешно, но у меня возникли проблемы при печати количества импортированных строк.
Мой класс (несколько файлов, но есть только один файл):
class LsuController extends BackEndController {
public function dbconfig(){
$dbconfig = array();
$dbconfig['dsn'] = 'mysql:host=localhost;dbname=bs_dev_csueastbay';
$dbconfig['username'] = 'root';
$dbconfig['password'] = '';
return $db = new PDO($dbconfig['dsn'], $dbconfig['username'], $dbconfig['password']);
}
public function actionIndex() {
// Config database
$db = $this->dbconfig();
$has_err = 0;
$link = dirname(__FILE__)."/../../../runtime/Import/";
$handles = array();
$handles[] = fopen($link."bookPictureMappings.csv","r");
foreach ($handles as $handle) {
if(!$handle){
$has_err++;
}
}
if($has_err == 0){
foreach ($handles as $key=>$handle) {
switch ($key) {
case '0':
$i = 0;
$model_err = 0; $ss = 0;
do {
if (isset($data[0])) {
if($i > 0){
$sql="INSERT INTO bookpicturemappings (Id, BookId, PictureId, bookpicturemappings.Order) VALUES (
:Id, :BookId, :PictureId, :bookOrder)";
$command = $db->prepare($sql);
$command->bindParam(":Id",$data[0],PDO::PARAM_STR);
$command->bindParam(":BookId",$data[1],PDO::PARAM_STR);
$command->bindParam(":PictureId",$data[2],PDO::PARAM_STR);
$command->bindParam(":bookOrder",$data[3],PDO::PARAM_STR);
if ($command->execute()){
$ss++;
}
}
$i++;
}
} while ($data = fgetcsv($handle,0,",","\""));
echo "Insert bookpicturemappings.csv successful! Total: ".($i-1)." - Import: ".$ss." - Error: ".$model_err."<br>";
break;
...............................
вопрос здесь:
- Когда код запуска, результат ($ сс = 0) :
Insert bookpicturemappings.csv successful! Total: 1862 - Import: 0 - Error: 0
- Когда я добавляю var_dump() funti на:
if ($command->execute()){ $ss++; } var_dump($ss);
результат ($ сс = 1862):
<...value dump....>
Insert bookpicturemappings.csv successful! Total: 1862 - Import: 1862 - Error: 0
WT ...? Я не понимаю, почему?
Попробуйте добавить ERRMODE_EXCEPTION (http://php.net/manual/en/pdo.setattribute.php) и показать нам результат, вероятно, ваш запрос PDO не работает корректно. – stepozer