繁体   English   中英

mysql_insert_id()

[英]mysql_insert_id()

我想知道是否有人可以帮助我。

我正在尝试在PHP中实现mysql_insert_id()命令,但似乎无法正常工作。

我正在使用一个非常简单的脚本(如下)来测试它是否有效,但是我只能在“ testfinds”表中而不是“ testimages”中创建一条记录。

<?php
    $conn = mysql_connect("hostname","username","password");
    if (!$conn) {
    die('PHP Mysql database connection could not connect : ' . mysql_error());
    }
    $findname=$_POST[findname];
    $phototitle=$_POST[phototitle];

    $db_selected = mysql_select_db("database", $conn);
    $sql = "INSERT INTO testfinds (findname)VALUES ('$findname')";
    $result = mysql_query($sql, $conn);

    $findid = mysql_insert_id($conn);

    $sql = "INSERT INTO testimages (phototitle) VALUES ('$phototitle','$findid')";
    $result = mysql_query($sql, $conn);

    //echo "Inserted record id is : " . mysql_insert_id();
    mysql_close($conn);
    ?>

我遍历了发现的示例,并对照我的代码进行了检查,那里似乎没有任何区别,并且我再次检查了表和字段名,以查看是否在此处出错了,但是我什么都找不到

这是我正在使用的表单,再次非常简单地测试了功能。

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>Map</title>        
        <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false&language=en"></script>    

 <form enctype="multipart/form-data" action="savephp.php" name="save" id="savefindsandimages" method="post">
 <label>Find Name:<input type="text" name="findname" id="findname" />
  <br />
  <br />
  Photo Title:
  <input type="text" name="phototitle" id="phototitle" /> 
 <br />
  <br />
</label>
 <p>
    <input type="submit" value="Add">

我只是想知道是否有人可以看一下这个,然后让我知道我要去哪里错了?

非常感谢

看来您的第二个INSERT查询有点不正确:

INSERT INTO testimages (phototitle) VALUES ('$phototitle','$findid')

您需要命名要设置的其他字段- (phototitle)应该是(phototitle,otherfieldname) 解决此问题,然后查看脚本是否按预期工作。

另外,我不知道这是否是错字,但您有:

$findname=$_POST[findname];
$phototitle=$_POST[phototitle];

$_POST变量应该读$_POST["findname"]$_POST["phototitle"] 最后,如注释中所述,您的脚本容易受到SQL注入攻击的攻击。 有关更多信息,请参见Bobby Tables

您缺少SQL中列的名称:

$sql = "INSERT INTO testimages (phototitle, COLUMN_NAME_HERE) VALUES ('$phototitle','$findid')";

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM