我想知道使用mysql_query在步骤3中插入表是否正确。另外,如何确保将其插入右侧?我猜我想使用WHERE语句。我这样做:INSERT .... WHERE .... VALUES
<?php
if (isset($_POST)){
//1. Define form variables
$language = $_POST['language'];
$level = $_POST['level'];
$language_learn = $_POST['language_learn'];
$learn_level = $_POST['learn_level'];
$preferred_contact = $_POST['preferred_contact'];
$city = $_POST['city'];
$age = $_POST['age'];
$sex = $_POST['sex'];
$description = $_POST['description'];
//2. Check if form variables are valid
//3. Insert into table
$insert = mysql_query("
INSERT INTO user (language, level, language learn, learn_level, preferred_contact, city, age, sex, description)
VALUES ('".$language."', '".$level."', '"$language_learn."', '".$learn_level."', '".$preferred_contact."', '".$city."', '".$age."', '".$sex."', ".$description."')");
//4. Reload page at home page
}//end $_POST
?>
答案 0 :(得分:2)
Insert会自动创建一个带有新增量ID的新行。 INSERT语句中没有WHERE,仅在更新语句中。为了安全起见,你应该用mysql_real_escape_string()附上所有的POST。
答案 1 :(得分:0)
看来是对的。 用于选择/更新/删除/等等....而不是用于插入。
答案 2 :(得分:0)
您可以直接使用它,而无需为每个变量提供"
和.
$insert = mysql_query("
INSERT INTO user
(language, level, language learn, learn_level, preferred_contact, city, age, sex, description)
VALUES
('$language', '$level', '$language_learn', '$learn_level', '$preferred_contact', '$city', '$age', '$sex','$description.')
");
答案 3 :(得分:0)
您可以使用mysql_insert_id(),
确保插入例如:在mysql_query(插入查询)之后,你可以像这样使用。
if(mysql_insert_id >0)
{
echo "Data inserted successfully";
}
答案 4 :(得分:0)
首先,您必须确保表中有主键。您的表定义中可能有一个类似user_id
的列,它是该表的主键。
其次,您应该将该列设置为auto increment
,因此每当您向表格添加新记录时,user_id
的值都会自动添加。
CREATE TABLE 'user'
(
'user_id' int(11) NOT NULL AUTO_INCREMENT,
.........
other columns
.........
PRIMARY KEY ('user_id')
) ENGINE=INNODB;
如果您有主键,但未将其设置为自动增量,则每次发出insert语句时都必须始终插入其值。
所以基本上这会失败,因为NULL
不是主键的允许值。
$insert = mysql_query("
INSERT INTO user (language, level, language learn, learn_level, preferred_contact, city, age, sex, description)
VALUES ('{$language}', '{$level}', '{$language_learn}', '{$learn_level}', '{$preferred_contact}', '{$city}', '{$age}', '{$sex}', {$description}')");
除了你的查询应该工作正常:)
注意:您应该使用参数化查询。