Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.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这段代码有什么问题?_Php_Mysql_Insert - Fatal编程技术网

PHP这段代码有什么问题?

PHP这段代码有什么问题?,php,mysql,insert,Php,Mysql,Insert,我是php新手,下面的代码块有问题。由于某种原因,当所有操作都已执行时,我将被发送到:auctionx.php?id=“.when它应该是id=1。我正在尝试获取“1”“来自$new_id变量。有人能指出我的错误吗?先谢谢你。另外,当我对我的项目进行分类后,在功能方面,我会将我被告知的内容翻译成mysqli。再次感谢 哦,还有最后一件事,我意识到我可能错过了一条捷径。在插入查询之后,如果您知道我的意思,是否有一些代码可以直接知道新id是什么?以避免我执行下一个查询。就像在第一个值字段中有“$ne

我是php新手,下面的代码块有问题。由于某种原因,当所有操作都已执行时,我将被发送到:auctionx.php?id=“.when它应该是id=1。我正在尝试获取“1”“来自$new_id变量。有人能指出我的错误吗?先谢谢你。另外,当我对我的项目进行分类后,在功能方面,我会将我被告知的内容翻译成mysqli。再次感谢

哦,还有最后一件事,我意识到我可能错过了一条捷径。在插入查询之后,如果您知道我的意思,是否有一些代码可以直接知道新id是什么?以避免我执行下一个查询。就像在第一个值字段中有“$new_id”一样简单。希望这是明确的

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'];