【问题标题】:PHP code not working (Not inserting data into database)PHP代码不起作用(未将数据插入数据库)
【发布时间】:2014-08-23 12:13:25
【问题描述】:

我正在尝试处理将数据插入数据库的表单,但它正在向数据库中插入任何内容。几天以来我一直在尝试这个......但没有解决方案......它也没有显示任何错误......请指导......尽快......

<?php
 if(isset($_POST['submit'])){
  $generic_drug_name = $_POST['generic_drug_name'];
  $brand_drug_name = $_POST['brand_drug_name'];
  $manufacturer_name = $_POST['manufacturer_name'];
  $type = $_POST['type'];
  $price = $_POST['price'];
 }else{
  $generic_drug_name = '';
  $brand_drug_name = '';
  $manufacturer_name = '';
  $type = '';
  $price = '';
}
$errors = ''; 
$errors['generic_drug_nameErr'] = '';
$errors['brand_drug_nameErr'] = '';
$errors['manufacturer_nameErr'] = '';
$errors['typeErr'] = '';
$errors['priceErr'] = '';

?>
<body>
<header>
<?php echo navigation(); ?>
</header>
<section>       
<div id="envelope">

<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="post">

<?php       

    if ($_SERVER["REQUEST_METHOD"] == "POST") {
        if (empty($_POST["generic_drug_name"])) {
           $errors['generic_drug_nameErr'] = "Name is required";

        }else{
           $generic_drug_name = test_input($_POST["generic_drug_name"]);
             // check if name only contains letters and whitespace
             if (!preg_match("/^[a-zA-Z ]*$/",$generic_drug_name)) {
               $errors['generic_drug_nameErr'] = "Only letters and white space allowed";
             }
           }
        if (empty($_POST["brand_drug_name"])) {
           $errors['brand_drug_nameErr'] = "Name is required";

        }else{
           $brand_drug_name = test_input($_POST["brand_drug_name"]);
             // check if name only contains letters and whitespace
             if (!preg_match("/^[a-zA-Z ]*$/",$brand_drug_name)) {
               $errors['brand_drug_nameErr'] = "Only letters and white space allowed";
             }
           }
        if (empty($_POST["manufacturer_name"])) {
           $errors['manufacturer_nameErr'] = "Name is required";

        }else{
           $manufacturer_name = test_input($_POST["manufacturer_name"]);
             // check if name only contains letters and whitespace
             if (!preg_match("/^[a-zA-Z ]*$/",$manufacturer_name)) {
               $errors['manufacturer_nameErr'] = "Only letters and white space allowed";
             }
           }
        if (empty($_POST["type"])) {
             $errors['typeErr'] = "Type is required";
           } else {
             $type = test_input($_POST["type"]);
             // check if e-mail address is well-formed
             if (!preg_match("/^[a-zA-Z ]*$/",$type)) {
               $errors['typeErr'] = "Only letters and white space allowed";
             }
           }
        if (empty($_POST["price"])) {
             $errors['priceErr'] = "";
           } else {
             $price = test_input($_POST["price"]);
             // check if e-mail address is well-formed
             if (!preg_match("/^[0-9\_]{1,4}/",$price)) {
               $errors['priceErr'] = "Invalid price format";
             }
           }                        
    }
?>
<center><h1>Add a new brand drug</h1></center><br>
<label>Generic Drug Name</label><span class="error">* </span><span class="text"><?php echo $errors['generic_drug_nameErr'];?></span>
<input type="text" name="generic_drug_name" placeholder="Enter Generic drug Names" value="<?php echo htmlspecialchars($generic_drug_name); ?>" width="100px;"/>
<label>Brand Drug Name</label><span class="error">* </span><span class="text"><?php echo $errors['brand_drug_nameErr'];?></span>
<input type="text" name="brand_drug_name" placeholder="Amlokind" autofocus="autofocus" value="<?php echo htmlspecialchars($brand_drug_name); ?>" width="100px;">
<label>Manufacturer</label><span class="error">* </span><span class="text"><?php echo $errors['manufacturer_nameErr'];?></span>
<input type="text" name="manufacturer_name" placeholder="Glaxo Smithkline Pharmaceuticals Pvt. Ltd." autofocus="autofocus" value="<?php echo htmlspecialchars($manufacturer_name); ?>">
<label>Type</label><span class="error">* </span><span class="text"><?php echo $errors['typeErr'];?></span>
<input type="text" name="type" placeholder="Tablet" autofocus="autofocus" value="<?php echo htmlspecialchars($type); ?>">       
<label>Price</label><span class="error">* </span><span class="text"><?php echo $errors['priceErr'];?></span>
<input type="text" name="price" placeholder="10.45" autofocus="autofocus" value="<?php echo htmlspecialchars($price); ?>" >
<input type="submit" name = "submit" value="Add" id="submit"/>

</form>
</div>
<?php  
if(isset($_POST['submit'])){
 /*$generic_drug_name = $_POST['generic_drug_name'];
 $brand_drug_name = $_POST['brand_drug_name'];
 $manufacturer_name = $_POST['manufacturer_name'];
 $type = $_POST['type'];
 $price = $_POST['price'];*/
    if(empty($errors)){
        $safe_generic_drug_name = strtoupper($generic_drug_name);               
        $safe_brand_drug_name = strtoupper($brand_drug_name);
        $safe_manufacturer_name = ucwords($manufacturer_name);
        $safe_type = ucfirst($type);
        $safe_price = $price;

        $query = "INSERT INTO brand_generic.brand_drug (drug_id, brand_drug_name, manufacturer, type, price)   
                    SELECT id, '{$safe_brand_drug_name}','{$safe_manufacturer_name}', '{$safe_type}', {$safe_price}
                    FROM brand_generic.generic_drug 
                    WHERE generic_drug_name = '{$safe_generic_drug_name}';";
                //INSERT INTO brand_generic.brand_drug (drug_id, brand_drug_name, manufacturer, type, price) VALUES ((SELECT id FROM brand_generic.generic_drug WHERE generic_drug_name = 'AMLODIPINE'), 'ZODIPINE', 'Zorex Pharma Pvt  Ltd', 'Tablet', 10);
        if(!$query){ 
            die(mysqli_error());
        }
        $result = mysqli_query($connection, $query);
        var_dump($result);

        if($result){
        $_SESSION["message"] = "Successfully subject created";
            //redirect_to("manage_content.php");
        echo $_SESSION["message"];
        }else{
        $_SESSION["message"] = "Sorry, subject couldn't be created";
            //redirect_to("new_subject.php");
        echo $_SESSION["message"];
        }
    }
}

?>

这段代码也没有显示任何错误......所以这就是为什么我不能告诉你这里出了什么问题......但它不起作用......我现在只能说这些...... 。谢谢你...:) 大家好,再次感谢您的建议,但它对我不起作用....但是当我把

if(!empty($errors)){

而不是

if(empty($errors)){

它可以工作....它不应该工作,对吧?...因为它会获取任何数据并将其插入数据库..如果不是请指导我....谢谢大家...:)

【问题讨论】:

  • 为什么使用两个$_POST['submit']
  • 先做echo $query并复制它,然后将它粘贴到phpmyadmin的sql并运行它..然后在这里发布错误!!
  • 你的insert 查询是错误的。它和你在下面评论的不一样!
  • 嘿Shaunak,感谢您尝试帮助我...但正如您在上面所说,我的插入查询是错误的..不正确...我的查询运行良好.....帮助如果您还有其他答案,请告诉我...谢谢...:)
  • 嘿 arunrc,我不知道..因为在我的很多 php 文件中我使用了两个 $_POST['submit']..但它没有显示任何错误...但我仍然格式化了我的代码,只使用一个 $_POST['submit']...但仍然无法治愈....仍然无法正常工作....谢谢...:)

标签: php mysql sql forms


【解决方案1】:

开始打印到浏览器后,您不能使用设置会话。

动起来

if(isset($_POST['submit'])){ 

到页面顶部,在 HTML 之前。

【讨论】:

  • 嘿朋友们,感谢您抽出时间查看我的代码,但我按照您上面所说的进行了尝试。我移动了 if(isset($_POST['submit'])){ 里面的所有代码......但它仍然无法正常工作......我全力以赴......无论如何谢谢...... :)
【解决方案2】:

它显示如下调试错误消息。

Fatal error: Call to undefined function navigation() in /var/www/poc.php on line 25

这意味着函数navigation() 已使用但未在脚本中的任何位置创建。并且致命错误不会让脚本继续进行。所以它是一个阻塞点

至少在 PHP 块顶部包含以下行将避免错误

<?php 
function navigation(){
return 1;
}
?>

此外,如果您想在服务器上查看错误消息,请使用脚本顶部的以下两行。

<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);
?>

【讨论】:

  • 嘿以利沙,谢谢。但我从functions.php 文件中调用函数navigation()。所以,它工作正常,这意味着它没有显示任何错误......我接受了你的建议并将这两行添加到我的页面顶部......但仍然没有显示任何错误......请帮助我。 ....再次感谢...:)
猜你喜欢
  • 1970-01-01
  • 2016-07-02
  • 1970-01-01
  • 2011-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-21
相关资源
最近更新 更多