สอบถามปัญหาการ insert into mysql ไม่เข้าฐานข้อมูล และ ไม่มี Error ด้วยค่ะ
Code (PHP)
$con = mysqli_connect("localhost", "root", "", "edoc");
mysqli_set_charset($con, "utf8");
date_default_timezone_set("Asia/Bangkok");
$docnum = $_POST['docnum'];
$start_date = $_POST['start_date'].date(" h:i A");
$end_date = $_POST['end_date'];
$topic= $_POST['topic'];
$lists = $_POST['select_name'];
$path;
if($_FILES['upfile']){
$file = $_FILES['upfile'];
$path = "./upload/$file[name]";
if(!move_uploaded_file($file['tmp_name'],$path)){
$path = "";
}
}
$q = "";
foreach($lists as $list){
$q = "Insert into job VALUES (' ','$docnum','$start_date','$end_date','$topic','$list','$path','New')";
if(mysqli_query($con,$q))
echo "No Err";
echo $q; //echo ดูแล้วรับข้อมูลมาครบทุกฟิลด์ที่กรอก
}
header("Location: index.php");
?>
Tag : PHP, MySQL, XAMPP
Date :
2018-08-28 12:14:07
By :
Malyn
View :
1898
Reply :
4
<?php
echo $q;
?>
แล้วคัดลอกผลลัพธ์ที่ได้ไปรันใน phpmyadmin ต่อครับ และตรวจสอบผลลัพธ์ครับ
Date :
2018-08-28 13:18:55
By :
chayayol
Code (PHP)
$result = mysqli_query($con , $q);
if (!$result) {
throw new Exception(mysqli_error($con )."[ $q]");
}
Code (SQL)
INSERT INTO `job` VALUES
ประวัติการแก้ไข 2018-08-28 15:04:54
Date :
2018-08-28 15:02:29
By :
mr.v
' (single quote) เป็นคนละตัวกับ ` (back tick)
ตัว back tick เป็นตัวเอาไว้คร่อมชื่อ ซึ่งทำให้ใช้ชื่อเฉพาะหรือเสี่ยงอันตรายแบบกรณีนี้ได้.
แต่ปกติจะแนะนำให้ตั้งชื่อที่เลี่ยงออกไปเลยจะดีกว่า ไม่ต้องเป็นคำศัพท์ที่เสี่ยงกับการกลายเป็นชื่อเฉพาะแบบนี้
อย่าง job ก็อาจจะใช้ tableprefix_job สักหน่อย คือใส่ prefix_ ให้ตารางไปซะ
แล้วชื่อฟิลด์ก็แบบเดียวกัน เช่น ตาราง myshop_orders อาจมีฟิลด์ order ก็ให้ใช้ prefix ชื่อตารางไป เช่น orders_order แบบนี้เป็นต้น.
ถ้าออกแบบตารางและฟิลด์แบบนี้ โอกาสไปชนชื่อเฉพาะแทบจะไม่มีเลย.
ให้หาข้อมูลเพิ่มเติมเกี่ยวกับ reserved words mysql หรือ reserved words mariadb ก็ได้ อ่านเพิ่มเติมดู.
ประวัติการแก้ไข 2018-08-30 12:06:34
Date :
2018-08-30 12:04:06
By :
mr.v
Load balance : Server 02