我不会声称确切知道我在做什么,因为我不这样做,这可能是非常明显的。我试图保持表单和函数在同一文件中更新数据库。我做错了什么?
以下是重点:
HTML:
<form id="billing" action="?updatebilling" method="post">
PHP:
<!-- Function to update billing -->
<?php
function updatebilling() {
// Connecting to the MySQL server
$host="localhost";
$user_name="root";
$pwd="bluebox";
$database_name="rewired";
$db=mysql_connect($host, $user_name, $pwd) or die(mysql_error());
if (mysql_error() > "") print mysql_error() . "<br>";
mysql_select_db($database_name, $db);
if (mysql_error() > "") print mysql_error() . "<br>";
// Static info - account number
$account_id=users::getAttr('Account', 'account_id');
// Storing form values into PHP variables
$zip = mysql_real_escape_string($_POST['billingzip']);
$name = mysql_real_escape_string($_POST['name']);
// Inserting variables into database
$sql = "INSERT INTO `web_signup`
SET `account_id` = '{$account_id}',
`zip` = '{$billingzip}',
`cardholder_name` = '{$name}',
`updated_at` = NOW()";
$result = mysql_query($sql) or die(mysql_error().$sql);
mysql_close($db);
} ?>
答案 0 :(得分:0)
您的<form>
标记很奇怪。
<form id="billing" action="?updatebilling" method="post">
这将重新加载同一页面,但?updatebilling
操作毫无意义。您需要检查页面顶部提交的内容并采取相应措施。许多人检查submit
按钮,如果找到它,则转移到处理代码。
if (!isset($_POST['submit'])) {
// echo form here
} else {
// process submitted data here.
}
您的action
可以留空或设置为指向包含action='<?php echo $_SERVER['PHP_SELF']; ?>'
的页面文件名
答案 1 :(得分:0)
我认为这里的答案可能有点明显。你在提交后调用了这个函数吗?从我在代码中看到的你定义了一个HTML表单,你的代码定义了一个函数来保存数据到数据库,但你实际上是在执行这个函数吗?例如:
<?php
// function to save billing info
function updatebilling() { ... }
if (isset($_POST)) { // only call function when a post request is being processed
updatebilling(); // execute function to save the billing info
}
?>
<form action="?updatebilling" method="post">
<!-- your inputs here -->
<input type="submit"/>
</form>