mysql_query返回boolean /返回false

时间:2016-01-04 14:44:41

标签: php mysql

我正在尝试用INI和mysql为UCP做些什么。现在,当我想检查行是否存在然后更新行或如​​果它不存在则只创建新行。但这里出了点问题。我做了一项研究,但我找不到如何解决这个问题。

$query = mysql_query("SELECT * FROM `podatoci` WHERE `Ime` = 'Ile_Popivanov'");
if($query) {
   if(mysql_num_rows($query) == 1) 
       $sql = "UPDATE `podatoci` SET `Pari` = 123 WHERE `Ime` = 'Ile_Popivanov'";
   else 
       $sql = "INSERT INTO `podatoci`(`Pari`, `Ime`) VALUES (123456, 'Ile_Popivanov')";
} 
else 
    echo 'Nekoja greska';

2 个答案:

答案 0 :(得分:0)

如果您更改表格并将唯一键添加到Ime字段

,则会更容易
ALTER TABLE .`podatoci` ADD UNIQUE INDEX `Ime_key` (`Ime` ASC);

然后不是检查行是否存在,而只是执行:

INSERT IGNORE INTO `podatoci`(`Pari`, `Ime`) VALUES (123456, 'Ile_Popivanov')

INSERT INTO `podatoci`(`Pari`, `Ime`) VALUES (123456, 'Ile_Popivanov') ON DUPLICATE KEY UPDATE Pari=123;

至于错误可能是由于没有连接到mysql服务器。我建议:

  1. 检查你的连接(只是你在mysql_connect()的地方尝试做mysql_connect($ hostname,$ username,$ password)或者死(mysql_error());可能会给你一个提示)

    < / LI>
  2. 检查你的PHP版本(mysql_ *自php 5.5以来已被弃用,并在php7中删除)。

答案 1 :(得分:0)

试试这个小例子

<?php
function Conect()
{
    if (!($link=mysql_connect("localhost","user","password")))
    {
        echo "error to connect to database.";
        exit();
    }
    if (!mysql_select_db("database_name",$link))
    {
        echo "Error to select database.";
        exit();
    }
    return $link;
}

$link=Conect(); 
$query="SELECT * FROM `podatoci` WHERE `Ime` = 'Ile_Popivanov'";
$action =mysql_query($query,$link);

if (!empty($action))
{
    //if exist update
    $query="UPDATE `podatoci` SET `Pari` = 123 WHERE `Ime` = 'Ile_Popivanov'";
    $action =mysql_query($query,$link);


    if (!$action) {
       die('has not update: ' . mysql_error());
     ?> <font color="blue" face="arial" size="4">was not update</font> <?php

     }

     ?> <font color="blue" face="arial" size="4">was update</font> <?php

     mysql_close($link);

}else{
    //If not exist insert
    $query="INSERT INTO `podatoci`(`Pari`, `Ime`) VALUES (123456, 'Ile_Popivanov')";
    $action =mysql_query($query,$link);

    if (!$action) {
       die('has not insert: ' . mysql_error());
     ?> <font color="blue" face="arial" size="4">was'nt' insert</font> <?php

     }

     ?> <font color="blue" face="arial" size="4">was insert</font> <?php

     mysql_close($link);
}//end if

祝你好运