php - Insert不会输入要形成的值

时间:2014-05-06 10:13:04

标签: php mysql

嗨,伙计们,我不知道我做错了什么,但我的表是正确的,PHP错误是打开,它不插入

enter image description here

我可以同时获得名字和电子邮件回复

 <?php 
 if (isset($_POST['subs'])) {


 function html_escape($html_escape) {
    $html_escape =  htmlspecialchars($html_escape, ENT_QUOTES | ENT_HTML5, 'UTF-8');
    return $html_escape;
    }   


    $name=html_escape($_POST['name']); 
    $email=html_escape($_POST['email']);


   if (empty($name) || empty($email)) {echo"<div class='alert alert-danger'>Please enter both name and email address</div>";}

   else {

    if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
   echo"<div class='alert alert-danger'>Invalid email address, please enter a correct email address!</div>";
    }

        else {

 echo "INSERT into subs (first_name, email) VALUES ('$name','$email')";
 $insert=mysql_query("INSERT into subs (first_name, email) VALUES ('$name','$email')");
  if ($insert) {echo"<div class='alert alert-success'>Thank you for subscribing with us</div>";}
     }

 }}
 ?>

3 个答案:

答案 0 :(得分:1)

首先,你是否在运行查询之前连接到mysql?

$conn=mysql_connect('localhost', 'your_db_username', 'your_db_password');
if(!$conn){
   die('Cannot connect to mysql');
}
mysql_select_db('your_db_name');

然后,当您确定自己已连接到数据库并且查询仍无法正常工作时,请在查询后添加or die(mysql_error()),这样可以帮助您了解&#39;你的插页出了问题:

$insert=mysql_query("INSERT into subs (first_name, email) 
        VALUES ('$name','$email')")
        or die(mysql_error());

答案 1 :(得分:0)

总的来说,首选使用PDO类,可能会为您提供有关问题的更多信息。

e.g。

$pdo = new \PDO('mysql:host=localhost;dbname=<database_name>', '<database_username>', '<database_password>');

$sql = "INSERT into subs (first_name, email) VALUES (:name,:email)";

$stmt = $pdo->prepare($sql);

$stmt->bindParam(':name', $name, PDO::PARAM_STR);    
$stmt->bindParam(':email', $email, PDO::PARAM_STR);

$result = $stmt->execute(); 

这带来了很多好处。请相信我的话,或者给予PDO&#34;的好处。一个快速的谷歌。

答案 2 :(得分:0)

$ query =“INSERT INTO subs(first_name,email)VALUES('”。$ name。“','”。$ email。“')”;

$ insert = mysql_query($ query);