PHP这段代码有什么问题?
我是php新手,下面的代码块有问题。由于某种原因,当所有操作都已执行时,我将被发送到:auctionx.php?id=“.when它应该是id=1。我正在尝试获取“1”“来自$new_id变量。有人能指出我的错误吗?先谢谢你。另外,当我对我的项目进行分类后,在功能方面,我会将我被告知的内容翻译成mysqli。再次感谢 哦,还有最后一件事,我意识到我可能错过了一条捷径。在插入查询之后,如果您知道我的意思,是否有一些代码可以直接知道新id是什么?以避免我执行下一个查询。就像在第一个值字段中有“$new_id”一样简单。希望这是明确的PHP这段代码有什么问题?,php,mysql,insert,Php,Mysql,Insert,我是php新手,下面的代码块有问题。由于某种原因,当所有操作都已执行时,我将被发送到:auctionx.php?id=“.when它应该是id=1。我正在尝试获取“1”“来自$new_id变量。有人能指出我的错误吗?先谢谢你。另外,当我对我的项目进行分类后,在功能方面,我会将我被告知的内容翻译成mysqli。再次感谢 哦,还有最后一件事,我意识到我可能错过了一条捷径。在插入查询之后,如果您知道我的意思,是否有一些代码可以直接知道新id是什么?以避免我执行下一个查询。就像在第一个值字段中有“$ne
if ($check_1 == 0)
{
//Then need to register the auction...so...
$auc_update = mysql_query("
INSERT INTO auction VALUES ('','$afil','$user','','','','','')
//Should the first be "$new_id" here (above) i mean
");
$row_1 = mysql_query("
SELECT * FROM auction WHERE host = $user AND auc_no = $afil
");
//Find
$new_id = $row_1['id'];
//Id obtained
//Go to:
header ("location:auctionx.php?id='$new_id'");
}
首先,您错过了一个函数调用
mysql\u query()
只需将查询发送到mysql,但对于选择
则需要如下方式检索结果:
$result = mysql_query("SELECT * FROM auction WHERE host = $user AND auc_no = $afil");
$row1 = mysql_fetch_assoc($result);
$new_id = $row1['id'];
header ("Location: auctionx.php?id=$new_id");
有关所用功能的更多信息:
然后,您确实应该确保查询正常工作,因此请检查返回值并检查其是否为false,否则将显示错误:
$result = mysql_query("SELECT * FROM auction WHERE host = $user AND auc_no = $afil");
if(false == $result) {
echo "Mysql error '" . mysql_errno() . "' : " . mysql_error();
}
然后,似乎您想要的是检索与数据库中最后一次插入相关联的id。您不需要为此选择,只需为此使用
记住所有这些,您的代码将变成:
if ($check_1 == 0)
{
$auc_update = mysql_query("INSERT INTO auction VALUES ('','$afil','$user','','','','','')");
if(false == $auc_update ) {
echo "Mysql error '" . mysql_errno() . "' : " . mysql_error();
} else {
$new_id = mysql_insert_id();
header ("Location: auctionx.php?id=$new_id");
}
还有一件事,mysql\u xxx()
被认为是不推荐使用的,您真的应该避免使用它,而是尝试使用它
尝试将mysql\u fetch\u assoc()
添加到new\u id
中,如:
$new_id = mysql_fetch_assoc($row_1)['id'];
语法错误:您试图在sql语句中添加注释。此外,您需要在调用以下命令后获取行:
<?php
if ($check_1 == 0){
//Then need to register the auction...so...
$auc_update = mysql_query("INSERT INTO auction VALUES ('','$afil','$user','','','','','')");
//Should the first be "$new_id" here (above) i mean
$row_1 = mysql_query("SELECT * FROM auction WHERE host = $user AND auc_no = $afil ");
$row_1 = mysql_fetch_assoc($row_1);
//Find
$new_id = $row_1['id'];
//Id obtained
//Go to:
header ("location:auctionx.php?id='$new_id'");
}?>
在mysql\u query()之后
必须使用
问题在于:
在执行此操作之前,您应该执行mysqli\u fetch\u array()
只是一个建议:
最好使用PDO或mysqli.*
而不是mysql.
在查询之后,您不会进行任何错误检查,因此您永远不会收到错误提示。请参阅有关如何正确执行此操作的手册:。。。而且您获取数据的方式是不正确的。你可能应该通过一个基本的教程来了解这是如何做到的。注意!PHP的未来版本正在弃用并删除mysql\uuz
函数系列。看起来你对PHP还不熟悉,所以现在是学习or的好时机。干杯我已经用了很多次了,但显然完全忘记了。应该这样做。我会试试的。我添加了更多信息来更改你的代码。非常感谢。是的,我担心那一点可能是多余的。
<?php
if ($check_1 == 0){
//Then need to register the auction...so...
$auc_update = mysql_query("INSERT INTO auction VALUES ('','$afil','$user','','','','','')");
//Should the first be "$new_id" here (above) i mean
$row_1 = mysql_query("SELECT * FROM auction WHERE host = $user AND auc_no = $afil ");
$row_1 = mysql_fetch_assoc($row_1);
//Find
$new_id = $row_1['id'];
//Id obtained
//Go to:
header ("location:auctionx.php?id='$new_id'");
}?>
$result_1 = mysql_query("SELECT * FROM auction WHERE host = $user AND auc_no = $afil");
$row_1 = mysql_fetch_assoc($result_1);
$new_id = $row_1['id'];
$new_id = $row_1['id'];