我正在尝试将页面提交给自己,但有些原因导致以下代码无效。另外,如何在成功插入数据后返回table1主键ID?我有一个需要此ID的子表。感谢您的任何建议。
<?php
include('db_login.php');
$connection = mysql_connect( $db_host, $db_username, $db_password );
if (!$connection){
die ("Could not connect to the database: <br />". mysql_error());
}
// Select the database
$db_select=mysql_select_db($db_database);
if (!$db_select){
die ("Could not select the database: <br />". mysql_error());
if ($_POST['Submit'])
{
$first = $_POST["first"];
$first = mysql_real_escape_string(get_magic_quotes_gpc() ? stripslashes($first): $first);
$last = $_POST["last"];
$last = mysql_real_escape_string(get_magic_quotes_gpc() ? stripslashes($last): $last);
$insertsql = "INSERT INTO table1(FirstName,LastName) VALUES ('".$first."', '" .$last. "')";
$result1 = mysql_query($insertsql) or die(mysql_error());
}
?>
<form name="hotlineForm" action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>"
method="post">
<input id="first" type="text">
<input id="last" type="text">
<input type="submit" value="Submit"></form></body>
答案 0 :(得分:1)
哪个部分没有在帖子上工作?你没有输入你的if语句吗?
要获取最后一个插入的ID,请在$ result1 = mysql_query(...)后使用以下内容:
$primary_id = mysql_insert_id()
答案 1 :(得分:0)
更改表单输入以包含名称属性。没有它们,您的$_POST
将为空。
<input name='first' id="first" type="text">
<input name='last' id="last" type="text">
<input name='Submit' type="submit" value="Submit">
如评论中所述,不应使用get_magic_quotes
。您已经在输入上正确调用了mysql_real_escape_string()
。
点击后,从mysql_insert_id()
获取ID:
$result1 = mysql_query($insertsql) or die(mysql_error());
$new_id = myqsl_insert_id();
答案 2 :(得分:0)
if ($_POST['Submit'])
我没有看到具有此名称的表单元素。
尝试:
if (isset($_POST['first']) && isset($_POST['last']))
要获取插入的ID,您可以使用:
mysql_insert_id();
答案 3 :(得分:0)
您在这里错过了结束}
:
if (!$db_select){
die ("Could not select the database: <br />". mysql_error());
} <<---- Close your if statement here.
if ($_POST['Submit'])
目前只有在无法选择数据库时才会调用执行实际工作的代码。
不是很有用。
这就是适当缩进很重要的原因 如果您对缩进有所了解,您会立即发现这些错误。
答案 4 :(得分:0)
使用输入字段的名称并检查它是不是submit