Php mysql\u insert\u id函数返回0

Php mysql\u insert\u id函数返回0,php,Php,我一直在试图弄清楚为什么这个功能在chrome上工作,而在firefox上却不工作 我有一个自动递增字段,它是我获取id的主键。这是我的密码 if (isset($_GET['id'])) { $id = $_GET['id']; } else { $id = mysql_insert_id(); echo $id; } 我试着将我的连接放在函数中,如下所示,但仍然不起作用。任何指点都将不胜感激。另外,我知道mysqli函数,我使用这些函数是因为用户的设置很旧 $id

我一直在试图弄清楚为什么这个功能在chrome上工作,而在firefox上却不工作

我有一个自动递增字段,它是我获取id的主键。这是我的密码

if (isset($_GET['id'])) {
    $id = $_GET['id'];
} else {
    $id = mysql_insert_id();
    echo $id;
}
我试着将我的连接放在函数中,如下所示,但仍然不起作用。任何指点都将不胜感激。另外,我知道mysqli函数,我使用这些函数是因为用户的设置很旧

$id = mysql_insert_id($conn);
这是我正在执行插入的代码

sprintf("INSERT INTO `trade_show_orders` (`SetupDate`,`SetupEndDate`,`ShowName`,`Location`,`Literature`,`StartDate`,`EndDate`,`Attendees`,`Projected`,`File`,`Giveaways`,`AddressBox`,`LocationType`,`Title`,`FirstName`,`LastName`,`Email`,`AddressOne`,`AddressTwo`,`Zip`,`Special`,`OrderDate`,`ShippingLocation`,`ShippingAddressOne`,`ShippingAddressTwo`,`ShippingZip`,`ShippingSpecial`) VALUES ('$setupDate','$endSetup','%s','%s','$values','$eventStart','$eventEnd','%d','%d','".basename($_FILES['fileUpload']['name'])."', '%s','off','%s','%s','%s','%s','%s','%s','%s','%d','%s',NOW(),'%s','%s','%s','%d','%s')", mysql_real_escape_string($_POST['showName']), mysql_real_escape_string($_POST['location']), $_POST['numberAttendees'], $_POST['visitors'], mysql_real_escape_string($_POST['giveaways']), mysql_real_escape_string($_POST['locationType']), mysql_real_escape_string($_POST['personalTitle']), mysql_real_escape_string($_POST['personalFirstName']), mysql_real_escape_string($_POST['personalLastName']), mysql_real_escape_string($_POST['personalEmail']), mysql_real_escape_string($_POST['personalAddressOne']), mysql_real_escape_string($_POST['personalAddressTwo']), $_POST['personalZip'], mysql_real_escape_string($_POST['personalSpecial']), mysql_real_escape_string($_POST['shippingLocation']), mysql_real_escape_string($_POST['shippingAddressOne']), mysql_real_escape_string($_POST['shippingAddressTwo']), $_POST['shippingZip'], mysql_real_escape_string($_POST['shippingSpecial']));
mysql\u insert\u id()
仅当您对当前连接执行了
insert
查询时才会返回id。这意味着它不会从“三次单击”之前的页面请求返回ID。它不会返回由同时执行的其他脚本完成的ID,因为这是使用到mysql的不同连接完成的


因此,显示实际执行插入的其余代码。PHP根本不应该关心远程it上运行的是什么浏览器。就PHP而言,它只是一个包含一些数据的HTTP请求。如果存在特定于浏览器的问题,它将出现在一些客户端代码中,例如,一些错误的javascript执行AJAX请求,并且没有正确填写字段。

结果表明,这与我的插入无关

显然,当您在Firefox的表单上使用带有提交的图像时,即,它将图像提交从“提交”重命名为“提交x”或“提交y”

Chrome和Safari同时查找submit和submit_x,submit_y和图像


Firefox和IE 7,8,9只查找submit_x和submit_y,这解释了为什么它只在chrome上工作

该功能完全不能依赖于浏览器。这取决于是否在数据库中插入了内容。如果你没有插入任何东西,当然你会得到一个0。好吧,我可以看到它在chrome上工作,而不是在firefox上。我知道这不重要,但这是我得到的。事实上,它在一个浏览器中工作而不是在另一个浏览器中工作的唯一方法是,如果一个浏览器向服务器发送不同的信息。因此,您缺少一些关键组件来解决此问题:javascript错误、javascript代码和发布的数据(也是在服务器上接受帖子的代码),此时我已将数据插入数据库。我可以用两种方法来验证它,一种是数据在那里,另一种是我可以在屏幕上看到在测试时确实有效的查询。函数返回上一次查询成功时为自动增量列生成的ID,如果上一次查询没有生成自动增量值,则返回0。您是否检查了查询是否准确成功?e、 g.
$result=mysql\u query($sql)或die(mysql\u error())
?是的,它确实成功了。我已经在插件上测试了很多次。