我正在尝试用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';
答案 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服务器。我建议:
检查你的连接(只是你在mysql_connect()的地方尝试做mysql_connect($ hostname,$ username,$ password)或者死(mysql_error());可能会给你一个提示)
< / LI>检查你的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
祝你好运