|
|
|
สอบถามปัญหาที่เกิดขึ้น เมื่อ insert ข้อมูลลงไปใน database |
|
|
|
|
|
|
|
เอา structure และ statement ที่ error มาดูครับ
|
|
|
|
|
Date :
2014-11-04 15:39:30 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คือถ้าคีย์ข้อมูลครบ ก็จะไม่ error
แต่ถ้าช่องหนึงช่องใดส่งค่าว่าง ก็จะเกิด error ขึ้น ทั้งๆ set ให้เป็น NULL แล้ว
"Incorrect integer value: '' for column 'kmoil1' at row 1"
Code (PHP)
<?php
require_once('dbconn.inc.php');
if (isset($_POST['carid']))
{
$usedate = $_POST['dyear'] ."-". $_POST['dmonth']."-".$_POST['dday'];
$carid = $_POST['carid'] ;
$statuscar = $_POST['statuscar'] ;
$kmbefore = $_POST['kmbefore'] ;
$kmafter = $_POST['kmafter'] ;
$kmoil1 = $_POST['kmoil1'];
$kmoil2 = $_POST['kmoil2'] ;
$oilqty1 = $_POST['oilqty1'] ;
$oilqty2 = $_POST['oilqty2'] ;
$oilmoney1 =$_POST['oilmoney1'] ;
$oilmoney2 = $_POST['oilmoney2'] ;
$driver = $_POST['driver'] ;
$detail = $_POST['detail'] ;
$workat = $_POST['workat'] ;
$selcon = mysql_query("select iduse from caruse where carid = '$carid' and usedate = '$usedate' ") ;
$rowselcon = mysql_fetch_array($selcon) ;
if (mysql_num_rows($selcon) == 0)
{
mysql_query("insert into `caruse` (`iduse`,`carid`, `usedate`, `statuscar`, `kmbefore`, `kmafter`, `kmoil1`, `kmoil2`, `oilqty1`, `oilqty2`, `oilmoney1`, `oilmoney2`, `driver`, `detail`, `workat`)
values (NULL,'$carid' ,'$usedate' , '$statuscar' , '$kmbefore', '$kmafter' , '$kmoil1' , '$kmoil2' , '$oilqty1' , '$oilqty2', '$oilmoney1' , '$oilmoney2' , '$driver' , '$detail' , '$workat')")
or die(mysql_error());
} else
{
?>
<script language = "javascript">
alert("คีย์ข้อมูลนี้ไปแล้ว ดูได้จากรายงานประจำวัน") ;
</script>
<?
echo '<meta http-equiv="refresh" content="0;URL=incaruse.php">';
exit ;
}
}
?>
|
ประวัติการแก้ไข 2014-11-04 15:46:25 2014-11-04 15:46:36 2014-11-04 15:48:12
|
|
|
|
Date :
2014-11-04 15:42:27 |
By :
shushu |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อันนี้เป็น error report
ต้องการ structure และ statement (query) ครับ บอกแค่เออเร่อร์ มาอย่างเดียว
ผมไม่คิดว่า ตัวระบบ ของ iis และ mysql ผิดครับ ผมคืดว่า query ผิด แล้วถ้าไม่เห็น คิวรี่ที่ผิด ผมก็เดาไปได้ต่างๆนาๆ
ถ้าไม่อยากให้เเดา ก็เอา structure (โครงสร้าง ตาราง) และ statement (คำสั่ง คิวรี่) มาให้ดูดีกว่าครับ
|
|
|
|
|
Date :
2014-11-04 15:47:17 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตาม NO.2 ข้างต้นเลยค่ะ
ขอบคุณค่ะ
|
|
|
|
|
Date :
2014-11-04 15:49:46 |
By :
shushu |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อันนี้เกิดจาก การกำหนด kmoil1 ='' เพราะ $_POST['kmoil1']; เป็นค่าว่าง
ต้องเขียนแบบนี้ครับ
$kmoil1 = $_POST['kmoil1']? intval($_POST['kmoil1']) : 'NULL';
และในคำสั่งคิวรี่ ไม่ต้องใส่ quote ครอบ ครับ
values (NULL,'$carid' ,'$usedate' , '$statuscar' , '$kmbefore', '$kmafter' , $kmoil1 , '$kmoil2' , '$oilqty1' , '$oilqty2', '$oilmoney1' , '$oilmoney2' , '$driver' , '$detail' , '$workat')")
ถ้าเป็นตัวเลขก็ไม่จำเป็นต้องมี quote
ถ้าเป็น null ก็ใส่ NULL ลงไปเหมือนกับ iduse ตัวแรกครับ
|
|
|
|
|
Date :
2014-11-04 15:53:23 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แก้แล้วค่ะแต่เกิด error นี้
Incorrect integer value: 'NULL' for column 'kmoil1' at row 1
|
|
|
|
|
Date :
2014-11-04 16:09:06 |
By :
shushu |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เอาส่วนที่บอกว่าแก้แล้ว มาดูทีครับ
ปล. นี่เป็นตัวอย่างที่ เออเร่อร์ แบบเดียวกัน
Code (SQL)
insert into `table_name` set nt_name='test_2' , int_null = ''
และนี่เป็นตัวอย่างที่ไม่ เออเร่อร์
Code (SQL)
insert into `table_name` set nt_name='test_2' , int_null = NULL
|
ประวัติการแก้ไข 2014-11-04 16:30:35
|
|
|
|
Date :
2014-11-04 16:12:23 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 03
|