Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP中的MySQL插入错误_Php_Mysql - Fatal编程技术网

PHP中的MySQL插入错误

PHP中的MySQL插入错误,php,mysql,Php,Mysql,我的实际插入线有问题。现在它只是在表中插入一个空行。我是否错误地输入了$email行(以“$sql=…”开头的行) 功能验证(表单id、电子邮件){ 变量reg=/^([A-Za-z0-9\-\.])+\@([A-Za-z0-9\-\.])+\.([A-Za-z]{2,4})$/; var address=document.forms[form_id]。元素[email]。值; 如果(注册测试(地址)=错误){ 警报(“无效电子邮件地址”); 返回false; } 在连接到数据库之前,不能调用

我的实际插入线有问题。现在它只是在表中插入一个空行。我是否错误地输入了$email行(以“$sql=…”开头的行)


功能验证(表单id、电子邮件){
变量reg=/^([A-Za-z0-9\-\.])+\@([A-Za-z0-9\-\.])+\.([A-Za-z]{2,4})$/;
var address=document.forms[form_id]。元素[email]。值;
如果(注册测试(地址)=错误){
警报(“无效电子邮件地址”);
返回false;
}

在连接到数据库之前,不能调用mysql\u real\u escape\u string(),否则只会收到警告并返回布尔值FALSE

将代码的顺序更改为:

mysql_connect(blah) or die(mysql_error());
mysql_select_db(blah) or die(mysql_error());

$email = mysql_real_escape_string($_POST['email']);

之所以这样做,是因为m_r_e_s()调用需要检索版本/状态信息,特别是哪些字符需要转义,而这在没有活动的DB连接的情况下是无法完成的。

您不能调用mysql\u real\u escape\u string()除非连接到数据库,否则只会收到警告并返回布尔值FALSE

将代码的顺序更改为:

mysql_connect(blah) or die(mysql_error());
mysql_select_db(blah) or die(mysql_error());

$email = mysql_real_escape_string($_POST['email']);

之所以这样做,是因为m_r_e_s()调用需要检索版本/状态信息,特别是哪些字符需要转义,而这在没有活动的数据库连接的情况下是无法完成的。

这应该可以

在mysql连接之后,您必须调用
mysql\u real\u escape\u string

if (isset($_POST['email']))
{
$email = $_POST['email'];
mysql_connect(blah) or die(mysql_error());
mysql_select_db(blah) or die(mysql_error());
$sql = sprintf("INSERT INTO 
email
(
email
) VALUES ('%s')", mysql_real_escape_string($email)); mysql_query($sql); }

尝试设置
error\u reporting(E\u ALL);
您将看到一个错误。

您必须在mysql连接后调用
mysql\u real\u escape\u string


尝试设置
error\u reporting(E\u ALL);
您将看到一个错误。

是不是$u POST['email']为空?也请阅读官方文档:“如果没有找到这样的链接,它将尝试创建一个链接,就像调用mysql\u connect()时没有参数一样。如果没有找到或建立连接,则会生成一个E\u警告级别的错误。”如果在
email
表中没有名为
email
的列,则每次该行都将为空。您试图在不存在的列中插入一个值。此外,建议使用更好的命名约定(对于表,可能是
email\u地址
,对于列,可能是
email
)@andre:在这种情况下,根本不会执行insert-有一个,但显示为空。因此,您有一个名为“email”的表,其中有一列也叫“email”?请尝试在insert查询的正上方添加一个“echo$email;”语句,以查看$email变量是否正确填充。是$u POST['email']空?也可以从官方文档中读到:“如果没有找到这样的链接,它将尝试创建一个链接,就像调用mysql_connect()时没有参数一样。如果没有找到或建立连接,将生成一个E_警告级别的错误。”如果在
email
表中没有名为
email
的列,则每次该行都将为空。您试图在不存在的列中插入一个值。此外,建议使用更好的命名约定(对于表,可能是
email\u地址
,对于列,可能是
email
)@andre:在这种情况下,根本不会执行insert-有一个,但结果是空的。因此,您有一个名为“email”的表,其中有一列也叫“email”?请尝试在insert查询的正上方添加一个“echo$email;”语句,以查看$email变量是否正确填充。