我正在尝试创建一个表单,其中变量字段被发送到phpmyadmin中的数据库。问题是phpmyadmin中的字段是空白的,好像我没有在表单中写任何东西。 PHP中的代码如下:
$name = $_POST["name"];
$institution = $_POST["institution"];
$email = $_POST["email"];
$country = $_POST["country"];
$hcp = $_POST["hcp"];
$texto = $_POST["texto"];
$state = $_POST["state"];
$license = $_POST["license"];
$connection = mysql_connect($database_host, $database_username, $database_password);
if(!$connection) { // if our attempt to connect failed
die('Could not connect: ' . mysql_error());
}
mysql_select_db($database_name, $connection) or die("You cannot select data base");
$consulta = ("INSERT INTO `1264`(`name`, `institution`, `email` , `country`, `hcp` , `texto` , `state` , `license`) VALUES ('".$name."','".$institution."','".$email."','".$country."','".$hcp."','".$texto."','".$state."','".$license."');");
echo $consulta; die;
mysql_query($consulta,$connection) or die("You cannot register. Try it later, please.");
在HTML中,表单的格式如下:
<form method="post" action="php/enviar.php">
<span class="texto azul">Name</span><input class="caja texto" name="name" type="text"/><br /><br />
<span class="texto azul">Institution</span><input class="caja texto" name="institution" type="text"/><br /><br />
<span class="texto azul">Email address</span><input class="caja texto" name="email" type="text"/><br /><br />
<span class="texto azul">Country</span><select id="country" class="caja texto" name="country">
<option value="">Country...</option>
<option value="Afganistan">Afghanistan</option>
...
</select>
<div id="fadein">
<span id="usa" class="texto azul inputText">HCP Designation</span><select name="hcp" class="caja inputText texto" disabled>
<option value="des">Designation...</option>
<option value="md">MD</option>
<option value="np">NP</option>
<option value="rn">RN</option>
<option value="other">Other</option>
</select><br /><br />
<span id="texto" class="texto azul inputText">If other, please specify</span>
<textarea class="caja inputText texto" name="texto" disabled></textarea><br /><br />
<span class="texto azul inputText">State of Licensure</span><input class="caja inputText texto" name="state" type="text" disabled/><br /><br />
<span class="texto azul inputText">License number</span><input class="caja inputText texto" name="license" type="text" disabled/><br /><br />
</div>
</form>
有人知道为什么它不接受我在表单中写的字段吗?
答案 0 :(得分:0)
这一行是问题所在。
echo $consulta; die;
您指示脚本甚至在到达mysql_query($consulta,$connection)
行之前退出。删除die
,如果您的连接良好且查询中没有语法错误,那么应该很好。
将查询存储为字符串时,您也不需要(
和)
。所以
$consulta = "INSERT INTO `1264`(`name`, `institution`, `email` , `country`, `hcp` , `texto` , `state` , `license`) VALUES ('".$name."','".$institution."','".$email."','".$country."','".$hcp."','".$texto."','".$state."','".$license."')";
Sidenote :您应该停止使用mysql_*
函数,因为它们在v5.5之后已弃用。转而使用PDO或mysqli。
答案 1 :(得分:-1)
你应该首先检查你得到的后期阵列。
首先执行此操作:
echo '<pre>';print_r($_POST);exit;
检查你得到的值。
注意:同时检查表单&amp;中的值名称字段post数组的键应该相同。
同时用下面给出的替换查询。
$consulta = "INSERT INTO `1264`(`name`, `institution`, `email` , `country`, `hcp` , `texto` , `state` , `license`) VALUES ('".$name."','".$institution."','".$email."','".$country."','".$hcp."','".$texto."','".$state."','".$license."')";