要通过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页面插入数据库中的数据
答
更改此:
$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);
答
你犯了错在这里,错过了现在的大幅贬值,单引号和你正在使用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已被弃用。
答
- 您错过
" . $code . "
前后的单引号'
。 -
也删除额外的分号
;
在插入查询的末尾。 看到代码:@$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);
你错过了单引号这里 “$代码。”并且不使用mysql *,使用mysqli *或PDO –
这段代码是_wiiiidddeeeee_开放给sql注入攻击 – arkascha
*“没有错误被显示”* - 那么,你是a)主动地抑制错误和b)不检查错误要么...... – deceze