![](/img/trans.png)
[英]MySQL/PHP - Select all the rows where column from table 1 is equal to column from table 2 and creating a foreach loop
[英]Creating MySQL table with PHP foreach loop - error with syntax
建立我自己的電子商務網站並在后端ive中創建一個表單,管理員可以在其中創建某些產品過濾器組(例如顏色)。
當我嘗試使用foreach循環將新表插入數據庫時,im確保未插入任何空白條目(並防止這些空白條目引起問題)。
但是,我遇到了語法問題,對此進行了充分的研究,但未取得任何成功。
您的SQL語法有誤; 在第1行的“ entry_date DEFAULT CURRENT_TIMESTAMP)”附近檢查與MySQL服務器版本相對應的手冊以使用正確的語法
我的代碼:
// GROUP NAME PROVIDED
$group_name = $_POST['g_name'];
// FILTER OPTIONS PROVIDED
$filter_1 = $_POST['filter_1'];
$filter_2 = $_POST['filter_2'];
$filter_3 = $_POST['filter_3'];
$filter_4 = $_POST['filter_4'];
$filter_5 = $_POST['filter_5'];
$filter_6 = $_POST['filter_6'];
$filter_7 = $_POST['filter_7'];
$filter_8 = $_POST['filter_8'];
$filter_9 = $_POST['filter_9'];
$filter_10 = $_POST['filter_10'];
$filter_11 = $_POST['filter_11'];
include '../connection.php';
$query = "CREATE TABLE $group_name (
entry_id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
product_name VARCHAR(255) NOT NULL,
product_id VARCHAR(255) NOT NULL,";
$newarray = array($filter_1,$filter_2,$filter_3,$filter_4,$filter_5,$filter_6,$filter_7,$filter_8,$filter_9,$filter_10,$filter_11);
// For each value that is not NULL
foreach ($newarray as $key => $value) {
if (is_null($value) === false) {
$new_array[$key] = $value;
echo $value;
$query = "$value VARCHAR(255) NOT NULL,";
}
}
$query= "entry_date DEFAULT CURRENT_TIMESTAMP)";
// Checking if query was successful or not
if (mysqli_query($connection, $query )) {
echo "Table created successfully";
} else {
echo "Error creating table: " . mysqli_error($connection);
}
mysqli_close($connection);
我嘗試過對時間戳插入進行不同的更改,但是沒有運氣。
值得注意的是,我還對查詢進行了拆分,以便可以包含foreach循環。
任何幫助,將不勝感激!
PS:我知道這段代碼可以進行SQL注入,因此我想在使其安全之前使其正常運行!
謝謝。 斯坦
工作代碼:
// GROUP NAME PROVIDED
$group_name = $_POST['g_name'];
// FILTER OPTIONS PROVIDED
$filter_1 = $_POST['filter_1'];
$filter_2 = $_POST['filter_2'];
$filter_3 = $_POST['filter_3'];
$filter_4 = $_POST['filter_4'];
$filter_5 = $_POST['filter_5'];
$filter_6 = $_POST['filter_6'];
$filter_7 = $_POST['filter_7'];
$filter_8 = $_POST['filter_8'];
$filter_9 = $_POST['filter_9'];
$filter_10 = $_POST['filter_10'];
$filter_11 = $_POST['filter_11'];
include '../connection.php';
$query = "CREATE TABLE $group_name (
entry_id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
product_name VARCHAR(255) NOT NULL,
product_id VARCHAR(255) NOT NULL,";
$newarray = array($filter_1,$filter_2,$filter_3,$filter_4,$filter_5,$filter_6,$filter_7,$filter_8,$filter_9,$filter_10,$filter_11);
$filtered_array = array_filter($newarray);
// For each value that is not NULL
foreach ($filtered_array as $key => $value) {
$filtered_array[$key] = $value;
echo $value;
$query .= "$value VARCHAR(255) NOT NULL,";
}
$query .= "entry_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP)";
echo "<br><br>".$query;
// Checking if query was successful or not
if (mysqli_query($connection, $query )) {
echo "Table created successfully";
} else {
echo "Error creating table: " . mysqli_error($connection);
}
mysqli_close($connection);
您缺少類型:
entry_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP
要么
entry_date DATETIME DEFAULT CURRENT_TIMESTAMP
您覆蓋變量$ query
使用=。 如果要累積字符串中的數據
$query =. "entry_date DEFAULT CURRENT_TIMESTAMP)";
購買這種方式並不是很好的存儲方式
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.