如果不存在,则仅INSERT INTO

时间:2014-12-15 10:03:47

标签: php mysql

如果数据库中不存在值并且回显"确定"我需要INSERT INTO。如果数据库中确实存在该值,请不要插入并回显" not ok"。

这是我的简单代码;

<html>
<body>
    <?php
    $con = mysql_connect($host, $user, $pass) or die("Could not connect to host.");
    mysql_set_charset('UTF8',$con);
    if (!$con) {
        die('Could not connect: ' . mysql_error());
    }

    $url= $_POST[url];
    $ok = "ok";
    $notok = " Not ok";

    mysql_select_db($database, $con) or die("Could not find database.");
    $sql="INSERT INTO link (url) VALUES ('$url' )";
    if (!mysql_query($sql,$con)) {
        die('Error: ' . mysql_error());
    }
    echo $ok."<br>";    

    mysql_close($con)
 ?>
</body>
</html>

网址来自表单的文本区域。

5 个答案:

答案 0 :(得分:1)

您可以使用mysqli查询:

从TABLE_NAME中选择计数(*) 其中URL = $ url

获取变量中的值并检查值是否为零。

IF(count is greater than 0)

{

     //do insertion

}

else

{
     //exit
}

答案 1 :(得分:0)

<html>
<body>
<?php
$con = mysql_connect($host, $user, $pass) or die("Could not connect to host.");
mysql_set_charset('UTF8',$con);
if (!$con)
{
      die('Could not connect: ' . mysql_error());
}

$url= $_POST[url];
$ok = "ok";
$notok = " Not ok";

mysql_select_db($database, $con) or die("Could not find database.");

///select url if already exist.
$q = "select url from link where url = '".$url."' ";
$mq = mysql_query($q) or die(mysql_error());
$mc = mysql_num_rows($mq);

//if mysql_num_rows return zero that means url is not exists in table and insert into table otherwise ignore it.

if($mc == 0)
{ 

    $sql="INSERT INTO link (url) VALUES ('$url' )";
    mysql_query($sql) or die(mysql_error());

    echo ok."<br>";
 }
 else
 {
      echo "Not Ok";
 }

 mysql_close($con)
?>
</body>
</html>

答案 2 :(得分:0)

在执行insert语句之前,您可以使用select statment检查表中是否已存在$ url值。

  1. 获取返回值的计数
  2. 如果等于0,则可以执行插入而不是

答案 3 :(得分:-1)

对于初学者而言,您在第25行的$之前错过了ok个符号,并且第11行的url中的$_POST[url]周围应该有引号另外,请务必使用mysqli代替mysql,更多地使用here

答案 4 :(得分:-1)

您需要首先检查数据库中是否有URL可用。您可以使用以下查询。

 SELECT COUNT(*) FROM table WHERE url =  $url

检查Count = 0然后

<pre>$sql="INSERT INTO link (url) VALUES ('$url' )";
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
echo $ok."<br>";

其他

echo $notok

希望这有帮助!!!

Nishit