我知道有一种方法可以插入select语句中的常量,我从这里找到了它的来源,例如:
INSERT INTO MyTable(ColA,ColB,ColC)
SELECT 1,colBB,colCC FROM MyTable2
但是,是否也可以添加用户输入值(使用php)而不是常量值?如果可能的话,提供一个例子。提前谢谢。
更新时间:我试图创建一个简单的网页,但有一些语法错误,我不知道如何解决:
分析错误:语法错误,意外的"(T_ENCAPSED_AND_WHITESPACE),在第10行的C:''examplep''htdocs''webservice''result.php中应为标识符(T_STRING)、变量(T_variable)或数字(T_NUM_STRING)
以下是我的代码:
<?php
//start a session
require("config.inc.php");
$username = $_SESSION["username"];
if(!empty($_POST)){
//check if user choose non-required drop down list
if(empty($_POST['subcategory'])){
if(empty($_POST['yearofstudy'])) {
$query = "INSERT INTO comments ( username, title, message, tousername )
SELECT :username, :title, :message, username
FROM utarstudents WHERE faculty = :faculty";
$query_params = array(
':faculty' => $_POST['category'],
':username' =>$username,
':title' =>$_POST['title'],
'message' =>$_POST['message']
);
}
else {
$query = "INSERT INTO comments ( username, title, message, tousername )
SELECT :username, :title, :message, username
FROM utarstudents WHERE faculty = :faculty AND year_of_study = :yearofstudy";
$query_params = array(
':faculty' => $_POST['category'],
'yearofstudy' => $_POST['yearofstudy'],
':username' =>$username,
':title' =>$_POST['title'],
'message' =>$_POST['message']
);
}
}
else {
if(empty($_POST['yearofstudy'])) {
$query = "INSERT INTO comments ( username, title, message, tousername )
SELECT :username, :title, :message, username
FROM utarstudents WHERE faculty = :faculty AND course = :course";
$query_params = array(
':faculty' => $_POST['category'],
':course' => $_POST['subcategory'],
':username' =>$username,
':title' =>$_POST['title'],
'message' =>$_POST['message']
);
}
else {
$query = "INSERT INTO comments ( username, title, message, tousername )
SELECT :username, :title, :message, username
FROM utarstudents WHERE faculty = :faculty AND year_of_study = :yearofstudy AND course = :course";
$query_params = array(
':faculty' => $_POST['category'],
'yearofstudy' => $_POST['yearofstudy'],
':course' => $_POST['subcetagory'],
':username' =>$username,
':title' =>$_POST['title'],
'message' =>$_POST['message']
);
}
}
try {
$stmt = $db->prepare($query);
$result = $stmt->execute($query_params);
}
catch (PDOException $ex) {
die("Failed to run query: " . $ex->getMessage());
}
}
这是我的一个经过编辑的代码片段,它可以完成你想要完成的任务。因此,在我的表单文件中,我有这样的东西来为项目做出贡献:
<form name="contribute" method="post" action="contribute-dbquery.php" onsubmit="return validateForm()">
First Name:
<input name="nameValue" type="text" size="40" maxlength="12" required/>
<input name="Submit" type="submit" value="Add"/>
</form>
因此,它所说的是,当Add的值为nameValue时,转到Tcontribute-dbquery.php。然后在我的contribute-dbquery.php中,我将表单中的nameValue分配给$name,然后将其插入到我的数据库中。我把它分配给了一个变量,因为我在那个页面上也使用了它。如果你愿意,你可以直接把它插入数据库。
$name = $_POST['nameValue'];
$insert_sql = "INSERT INTO mastertable (name) VALUES (' " . $name . " ')";
如果这有助于将其标记为已回答。如果你需要帮助,请告诉我。