为什么我的INSERT语句失败而没有错误


Why does my INSERT statement fail without error?

我试图在表中插入一行,但插入时没有显示任何错误:

$sql="(INSERT INTO as_registration (roll, registrationid, fullname, username, 
       password, dob, courseid, email, gender, phoneno, status) 
       VALUES ('".$roll."','".$regid."','".$name."','".$username."','"
       .$pwd."','".$dob."',".intval($c_id['courseid']).",'".$email."','"
       .$gender."',".$phone.",'".$status."'))";

这句话的错误在哪里?

您不能在开头和结尾使用括号,请尝试使用以下查询:

    $sql = "
INSERT INTO 
    as_registration (roll, registrationid, fullname, username, password, dob, courseid, email, gender, phoneno, status ) 
VALUES 
    ('". mysql_real_escape_string($roll) ."','". mysql_real_escape_string($regid) ."','" 
       . mysql_real_escape_string($name) ."','". mysql_real_escape_string($username) ."','"
       . mysql_real_escape_string($pwd) ."','". mysql_real_escape_string($dob) ."',"
       . mysql_real_escape_string(intval($c_id['courseid'])) .",'". mysql_real_escape_string($email) ."','"
       . mysql_real_escape_string($gender) ."','". mysql_real_escape_string($phone) ."','". mysql_real_escape_string($status) ."')";

如果您像这样使用代码,那么它很容易受到SQL注入的攻击。我强烈建议在将数据插入数据库时使用mysql_real_sescape_string,以防止SQL注入,作为一种快速解决方案,或者更好地使用PDO或MySQLi。

此外,如果您使用mysql_*连接到数据库,那么我建议您阅读关于mysql_*函数的PHP手册章节,他们指出,不建议将此扩展用于编写新代码。相反,他们说,您应该使用MySQLi或PDO_MySQL扩展。

删除第一个和最后一个括号"("answers")"。

下面的代码相当于您发布的代码。

$sql="INSERT INTO as_registration (roll, registrationid, fullname, username, password, dob, courseid, email, gender, phoneno, status )
      VALUES ('$roll', '$regid', '$name', '$username', '$pwd', '$dob', ".intval($c_id['courseid']).", '$email', '$gender', $phone, '$status')";

关于双引号字符串的文档

try;

$courceid = intval($c_id['courseid']);
$sql="(INSERT INTO as_registration
(roll, registrationid, fullname, username, password, dob, courseid, email, gender, phoneno, status )
VALUES
('$roll','$regid','$name','$username','$pwd','$dob','$courceid','$email','$gender','$phone','$status'))";

您可以删除double quotes和'.'和"("字符

$sql="INSERT INTO as_registration (roll, registrationid, fullname, username, password, dob, courseid, email, gender, phoneno, status ) VALUES ('$roll','$regid','$name','$username','$pwd','$dob',{c_id['courseid']} ,'$email','$gender',$phone,'$status')"