通过PHP将HTML表单发送到MySQL
我有点小问题。我正在尝试将一些数据从我的页面发送到我的数据库 HTML代码:通过PHP将HTML表单发送到MySQL,php,html,Php,Html,我有点小问题。我正在尝试将一些数据从我的页面发送到我的数据库 HTML代码: [insert_php] $current_user = wp_get_current_user(); //I am using wordpress and I need php on page script. echo $current_user->ID; // here it shows "1" because I am admin. [/insert_php] <form actio
[insert_php]
$current_user = wp_get_current_user(); //I am using wordpress and I need php on page script.
echo $current_user->ID; // here it shows "1" because I am admin.
[/insert_php]
<form action="http://mysitee.com/xxx.php" method="post">
E-mail: <input type="text" name="email">
Nick: <input type="text" name="user_name">
Server: <select name="server">
<option value="1">1</option>
<option value="2">2</option>
<option value="3" selected>3</option>
<option value="4">4</option>
</select>
<input type="hidden" name="reward" value="123">
<input type="hidden" name="user_id" value="[insert_php]echo "$current_user->ID";[/insert_php]">
<input type="submit" value="Submit">
</form>
[插入\u php]
$current_user=wp_get_current_user()//我正在使用wordpress,我需要php页面脚本。
echo$current_user->ID;//这里显示“1”,因为我是管理员。
[/insert_php]
电邮:
尼克:
服务器:
1.
2.
3.
4.
ID“;[/insert_php]”
下面是PHP代码:
<?php
$link = mysql_connect('site.com', 'login', 'pass');
mysql_select_db('mydb');
// Check connection
if (!$link) {
die('Could not connect: ' . mysql_error());
}
$user_id = mysql_real_escape_string($link, $_POST['user_id']);
$user_name = mysql_real_escape_string($link, $_POST['user_name']);
$server = mysql_real_escape_string($link, $_POST['server']);
$email = mysql_real_escape_string($link, $_POST['email']);
$nagroda = mysql_real_escape_string($link, $_POST['reward']);
mysql_query("INSERT INTO winners (user_id, user_name, server, email, reward)
VALUES ('$user_id', '$user_name', '$server', '$email', '$nagroda')");
if (!mysql_query($link)) {
die('Error: ' . mysql_error($link));
}
echo "1 record added";
mysql_close($link);
?>
Its-
而你却做了相反的事。修复如下-
mysql_real_escape_string($_POST['user_id'], $link)
建议:不要使用mysql_*语句,因为它们在最近的PHP版本中已被弃用。学习mysqli prepared或PDO。Its-
mysql_real_escape_string(string, connection)
There is a little modification in the code. I think it ll help
<?php
$link = mysql_connect('site.com', 'login', 'pass');
mysql_select_db('mydb');
// Check connection
if (!$link) {
die('Could not connect: ' . mysql_error());
}
$user_id = mysql_real_escape_string($link, $_POST['user_id']);
$user_name = mysql_real_escape_string($link, $_POST['user_name']);
$server = mysql_real_escape_string($link, $_POST['server']);
$email = mysql_real_escape_string($link, $_POST['email']);
$reward = mysql_real_escape_string($link, $_POST['reward']);
$sql="INSERT INTO winners (user_id, user_name, server, email, reward)
VALUES ('$user_id', '$user_name', '$server', '$email', '$nagroda')";
if (!mysql_query($sql,$link)) {
die('Error: ' . mysql_error($link));
}
echo "1 record added";
mysql_close($link);
?>
而你却做了相反的事。修复如下-
mysql_real_escape_string($_POST['user_id'], $link)
建议:不要使用mysql_*语句,因为它们在最近的PHP版本中已被弃用。学习mysqli prepared或PDO。代码中有一些修改。我想会有帮助的
There is a little modification in the code. I think it ll help
<?php
$link = mysql_connect('site.com', 'login', 'pass');
mysql_select_db('mydb');
// Check connection
if (!$link) {
die('Could not connect: ' . mysql_error());
}
$user_id = mysql_real_escape_string($link, $_POST['user_id']);
$user_name = mysql_real_escape_string($link, $_POST['user_name']);
$server = mysql_real_escape_string($link, $_POST['server']);
$email = mysql_real_escape_string($link, $_POST['email']);
$reward = mysql_real_escape_string($link, $_POST['reward']);
$sql="INSERT INTO winners (user_id, user_name, server, email, reward)
VALUES ('$user_id', '$user_name', '$server', '$email', '$nagroda')";
if (!mysql_query($sql,$link)) {
die('Error: ' . mysql_error($link));
}
echo "1 record added";
mysql_close($link);
?>
代码中有一点修改。我想会有帮助的
在这里。当使用mysql\u查询(“插入…”
和if(!mysql\u query($link))时,您调用了Andrewsi所说的mysql\u query()
两次
另外,您正在使用基于mysqli的方法mysql\u real\u escape\u string($link
摆脱$link,
,或者更好的是,专门使用mysqli.*
修改为$query=mysql\u query(“插入…”
,然后使用查询变量
if(!$query,$link)
<?php
$link = mysql_connect('site.com', 'login', 'pass');
mysql_select_db('mydb');
// Check connection
if (!$link) {
die('Could not connect: ' . mysql_error());
}
$user_id = mysql_real_escape_string($_POST['user_id']);
$user_name = mysql_real_escape_string($_POST['user_name']);
$server = mysql_real_escape_string($_POST['server']);
$email = mysql_real_escape_string($_POST['email']);
$nagroda = mysql_real_escape_string($_POST['reward']);
$query = mysql_query("INSERT INTO winners (user_id, user_name, server, email, reward)
VALUES ('$user_id', '$user_name', '$server', '$email', '$nagroda')");
if (!$query) {
die('Error: ' . mysql_error());
}
echo "1 record added";
mysql_close($link);
?>
这里。在使用mysql\u查询(“插入…”
和if(!mysql\u query($link))时,您调用了安德鲁斯所说的mysql\u query()
两次。
另外,您正在使用基于mysqli的方法mysql\u real\u escape\u string($link
摆脱$link,
,或者更好的是,专门使用mysqli.*
修改为$query=mysql\u query(“插入…”
,然后使用查询变量
if(!$query,$link)
<?php
$link = mysql_connect('site.com', 'login', 'pass');
mysql_select_db('mydb');
// Check connection
if (!$link) {
die('Could not connect: ' . mysql_error());
}
$user_id = mysql_real_escape_string($_POST['user_id']);
$user_name = mysql_real_escape_string($_POST['user_name']);
$server = mysql_real_escape_string($_POST['server']);
$email = mysql_real_escape_string($_POST['email']);
$nagroda = mysql_real_escape_string($_POST['reward']);
$query = mysql_query("INSERT INTO winners (user_id, user_name, server, email, reward)
VALUES ('$user_id', '$user_name', '$server', '$email', '$nagroda')");
if (!$query) {
die('Error: ' . mysql_error());
}
echo "1 record added";
mysql_close($link);
?>
您的错误处理不正确。在变量中捕获第一次调用mysql\u query()
的结果,并检查其是否为false。如果为false,则显示mysql\u error()
。您使用的是基于mysqli
的方法mysql\u real\u escape\u字符串($link
摆脱$link,
或者更好,只使用mysqli.*
。对不起,伙计们,我在PHP/HTML方面真的是个新手。你能更详细地解释一下要更改什么以及在哪里更改吗?确切的是什么错误消息?您运行了两次mysql\u query
。第一次使用您的查询,第二次使用$link
。后者失败-您根本没有检查第一次调用。错误处理不正确。捕获第一次调用mysql\u query()的结果
输入一个变量,检查是否为false。如果为false,则显示mysql\u error()
。您使用的是基于mysqli
的方法mysql\u real\u escape\u字符串($link
摆脱$link,
或者更好,只使用mysqli.*
。对不起,伙计们,我在PHP/HTML方面真的是个新手。你能更详细地解释一下要更改什么以及在哪里更改吗?确切的是什么错误消息?您正在运行两次mysql\u query
。第一次使用您的查询,第二次使用$link
。后者失败-您根本没有检查第一次调用。,$link
实际上不需要。(link\u标识符)MySQL连接。如果未指定链接标识符,则假定MySQL\u connect()打开的最后一个链接。如果未找到此类链接,则将尝试创建一个,就像MySQL\u connect()一样调用时没有参数。如果未找到或建立连接,将生成E_警告级别错误。根据手册@Fred ii-是,这是可选的。仍然显示OP在代码中犯了什么错误。是的,但正如我在a中所述,OP似乎面临另一个问题,所以请做好准备;-)仍然有一个问题(抱歉加倍)。即使我的整个记录都被添加了,我仍然会收到带有“error:”的回音。你知道为什么当我在数据库中实际填充了我的整个记录时?@Fred ii-error
意思是,OP在这里得到了一些错误如果(!mysql_query($link)){die('error:'.mysql_error($link));}
,$link
实际上并不需要。(link\u identifier)MySQL连接。如果未指定链接标识符,则假定MySQL\u connect()打开的最后一个链接。如果未找到此类链接,它将尝试创建一个,就像MySQL\u connect()一样调用时没有参数。如果未找到或建立连接,将生成E_警告级别错误。根据手册@Fred ii-是,这是可选的。仍然显示OP在代码中犯了什么错误。是的,但正如我在a中所述,OP似乎面临另一个问题,所以请做好准备;-)仍然有一个问题(抱歉翻倍)。即使我的整个记录都被添加了,我仍然会收到带有“error:”的回音。你知道为什么我的数据库中的整个记录都被填充了吗?@Fred ii-error
意思是,OP在这里得到了一些错误如果(!mysql_query($link)){die('error:'.mysql_error($link));}/code>“解析错误:语法错误,意外”,“第19行的in/home/script.php”请稍等。我会检查它。@user3565273我将它改为if(!$query)
立即尝试@user3565273和mysql_error($link)
到mysql_error()
工作,谢谢你,弗雷德;)如果可以的话,还有一个问题。我如何在同一页上创建此回音?我不希望人们被重定向到另一页,只希望在单击“提交”时在同一页上通知“添加了1条记录”。有什么想法或链接吗?:)不客气。为了让它在同一页上回音,您需要将表单放在同一页上,并使用action=“”