要通过php页面插入数据库中的数据

要通过php页面插入数据库中的数据

问题描述:

<?php 
@$code = $_POST['code']; 
@$name = $_POST['name']; 

@$city = $_POST['city']; 

$connect = mysql_connect("localhost", "root", "", "parth") or die("connection failed"); 

$sql_query = "INSERT INTO customer_master(customer_code,customer_name,customer_city) values(" . $code . ",'" . $name . "','" . $city . "');"; 
$result = mysql_query($sql, $connect); 

if ($result) { 
    echo "database connected"; 
} else { 

    echo "data not inserted"; 
} 
mysql_close($connect); 
?> 

上面提到的代码是在数据库中插入数据但未插入数据的代码,没有显示任何错误,所以任何人都可以帮助我解决问题。要通过php页面插入数据库中的数据

+0

你错过了单引号这里 “$代码。”并且不使用mysql *,使用mysqli *或PDO –

+0

这段代码是_wiiiidddeeeee_开放给sql注入攻击 – arkascha

+0

*“没有错误被显示”* - 那么,你是a)主动地抑制错误和b)不检查错误要么...... – deceze

更改此:

$sql_query="INSERT INTO customer_master(customer_code,customer_name,customer_city) values(".$code.",'".$name."','".$city."');"; 
$result=mysql_query($sql,$connect); 

分为: “$代码”

$sql_query="INSERT INTO customer_master(customer_code,customer_name,customer_city) values('".$code."','".$name."','".$city."')"; 
$result=mysql_query($sql_query,$connect); 
+0

虽然这可以解决手头的问题,但增加关于完全过时和弃用的旧mysql扩展的用法的提示以及将这些参数连接起来的安全问题是有意义的。 – arkascha

+0

仍然无法正常工作 – parth

+0

@arkascha为什么不先帮助他解决最初的问题,然后当一切都很好时,去鼓励他学习和学习'mysqli'或'PDO'? – Irvin

你犯了错在这里,错过了现在的大幅贬值,单引号和你正在使用MySQL使用mysqli如下:

<?php 

     @$code=$_POST['code']; 
     @$name=$_POST['name']; 

     @$city=$_POST['city']; 

     $connect=mysqli_connect("localhost","root","","parth") or die("connection failed"); 

      $sql_query="INSERT INTO customer_master(customer_code,customer_name,customer_city) values('".$code."','".$name."','".$city."');"; 
      $result=mysqli_query($sql,$connect); 

if($result) 
    { 
echo "database connected"; 

    } 
      else 
     { 

echo "data not inserted"; 
     } 
     mysqli_close($connect); 


     ?> 

我从来没有遇到过一个“@”在PHP中的变量声明之前的情况,这对我来说是新的,但像lrvin和其他人指出的那样,您在SQL中缺少单引号。

我不是连接的粉丝,我尝试了连接路线(这只是一个首选项)犯了几个错误。您可以按照lrvin的回答,也可以添加以下修改:

  • 删除位于SQL末尾的第一个分号。
  • 不要使用级联

  • 包含mysql_error函数。这会返回一条错误消息,指出您的错误。

    $sql_query="INSERT INTO customer_master(customer_code,customer_name,customer_city) values('$code', '$name', '$city')"; 
    $result=mysql_query($sql_query, $connect) or die(mysql_error($connect)); 
    

您应该考虑使用的mysqli替代的MySQL。 mysql已被弃用。

  1. 您错过" . $code . "前后的单引号'
  2. 也删除额外的分号;在插入查询的末尾。 看到代码:

    @$code = $_POST['code']; 
    @$name = $_POST['name']; 
    @$city = $_POST['city']; 
    $connect = mysql_connect("localhost", "root", "", "parth") or die("connection failed"); 
    
    $sql_query = "INSERT INTO customer_master(customer_code,customer_name,customer_city) values('" . $code . "','" . $name . "','" . $city . "')"; 
    $result = mysql_query($sql, $connect); 
    
    if ($result) { 
        echo "database connected"; 
    } else { 
        echo "data not inserted"; 
    } 
    mysql_close($connect);