在这里输入代码我的php文件没有在我的数据库上发布表单。我在其他线程中搜索过,但我无法使其工作。 我尝试了一切,但我不能让它发挥作用。我正在使用XAMPP进行托管。 代码:
<?php
$link=mysql_connect('localhost','root','');
mysql_select_DB('registro',$link);
?>
<html>
<head>
<meta charset="utf-8" />
<link rel="icon" type="image/png" href="/images/icon.png" />
<title>Insert.</title>
<link href="estilo.css" rel="stylesheet" type="text/css" />
</head>
<link href="../../../../../Mis Cosas/Mis documentos/Insert/estilos/estilos.css" rel="stylesheet" type="text/css">
<body>
<?php if(!$_POST) { ?>
<h1>Registro</h1>
<form id="form1" name="form1" action="index.php" method="POST">
<p>Nombre:
<input name="nombre" type="name" class="input" placeholder="Nombre">
</p>
<p><BR>Apellido:
<input name="ape" type="text" class="input" placeholder="Apellido">
</p>
<p>Email:
<input name="email" type="email" class="input" placeholder="Email">
</p>
<p>Teléfono:
<input name="tel" type="text" class="input" placeholder="Teléfono">
<BR>
<input name="enviar" type="submit" class="button" value="Enviar">
</p>
</form>
<?php
}else{
$nombre=$_POST['nombre'];
$apellido=$_POST['ape'];
$email=$_POST['email'];
$tel=$_POST['tel'];
$sql = "INSERT INTO clientes(nombre,apellido,email,tel) VALUES('$nombre','$apellido','$email','$tel')";
Mysql_query($sql);
print"Done";
}?>
</body>
</html>
答案 0 :(得分:2)
第一个问题:
Mysql_query($sql); //even though php functions are case-insensitive
^
should be lower case
第二个问题:你没有逃避数据,你应该使用PDO或MySQLi。这会给您的网站带来严重的问题,比如SQL Injection。
我认为你的问题是你没有逃避变量。如果您的任何输入字段包含引号,则可能会收到错误消息like syntax error
,但由于error_reporting
error_log
它可能会显示在mysql_real_escape_string($postVariable);
中。所以要么使用$nombre = $_POST['nombre'];
$apellido = $_POST['ape'];
$email = $_POST['email'];
$tel = $_POST['tel'];
$sql = "INSERT INTO clientes(nombre, apellido, email, tel)
VALUES(:nombre, :apellido, :email, :tel)";
$stmt = $pdoObj->prepare($sql);
$stmt->bindParam(':nombre', $nombre, \PDO::PARAM_STR);
$stmt->bindParam(':apellido', $apellido, \PDO::PARAM_STR);
$stmt->bindParam(':email', $email, \PDO::PARAM_STR);
$stmt->bindParam(':tel', $tel, \PDO::PARAM_STR);
if ($stmt->execute()) {
echo 'DONE';
}
,要么使用预备语句。
PDO:
的示例{{1}}