Почему bindvalue не вставляется в таблицу?

У меня есть этот запрос:

$sql="insert into m_ruangan (RG_ID,RG_Nama,RG_Kapasitas,RG_Keterangan,RG_AktifYN,RG_UpdateID,RG_UpdateTime) ".
        "values (:field1,:field2,:field3,:field4,:field5,:field6,:field7); ";

$stmt->bindValue(':field1', $result['RG_ID'], PDO::PARAM_INT);
$stmt->bindValue(':field2', $result['RG_Nama'], PDO::PARAM_STR);
$stmt->bindValue(':field3', $result['RG_Kapasitas'], PDO::PARAM_INT);
$stmt->bindValue(':field4', $result['RG_Keterangan'], PDO::PARAM_STR);
$stmt->bindValue(':field5', $result['RG_AktifYN'], PDO::PARAM_STR);
$stmt->bindValue(':field6', $result['RG_UpdateID'], PDO::PARAM_STR);
$stmt->bindValue(':field7', $result['RG_UpdateTime'], PDO::PARAM_STR);

$stmt =$m_f->cdb->prepare($sql);
$stmt->execute();

Когда я запускаю его, он не показывает ошибки, но значение не будет вставлено в таблицу. Я использую цикл для вставки

Любая идея, почему это идет не так?

2 ответа

Вам нужно prepare Ваше заявление SQL до bindValue,

$stmt =$m_f->cdb->prepare($sql);
$stmt->bindValue(':field1', $result['RG_ID'], PDO::PARAM_INT);
$stmt->bindValue(':field2', $result['RG_Nama'], PDO::PARAM_STR);
.........          
$stmt->execute();

Вы говорите, что не видите ошибку. Вы уверены, что включили ошибки PDO?

$connection = new PDO($connection_string); 
$connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

Вы можете выбрать один из них:

PDO::ERRMODE_SILENT: Just set error codes.
PDO::ERRMODE_WARNING: Raise E_WARNING. 
PDO::ERRMODE_EXCEPTION: Throw exceptions.

РЕДАКТИРОВАТЬ: Я думаю, что комментарий Rikesh описывает проблему.

Другие вопросы по тегам