-2

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

$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."'))";

该语句的错误在哪里?

4

5 回答 5

1

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

    $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_escape_string以防止SQL 注入,作为一种快速解决方案或更好地使用PDOMySQLi

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

于 2012-09-08T16:29:27.150 回答
0

删除第一个和最后一个括号“(”和“)”。

于 2012-09-08T16:26:09.163 回答
0

以下代码等效于您发布的代码。

$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')";

关于双引号字符串的文档

于 2012-09-08T16:31:21.750 回答
0

尝试;

$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'))";
于 2012-09-08T16:34:28.190 回答
-3

您可以删除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')"
于 2012-09-08T16:24:30.680 回答