2013-08-19 29 views
0

我想在使用php 5.3插入之前检查表中是否已存在URL。在使用php 5.3插入之前检查MySQL行中的数据

 
+-------------+-----------+ 
+ durl + surl + 
+-------------+-----------+ 
+ abc  + xyz + 
+ mno  + pqr + 
+ efg  + jkl + 
+-------------+-----------+ 

如果我加abc它给我存储在col 2 [surl] xyz中的值。
如果不在数据库中添加此项。

<?php 
$dbhost = '****'; 
$dbuser = '****'; 
$dbpass = '****'; 
$conn = mysql_connect($dbhost, $dbuser, $dbpass); 
if(! $conn) 
{ 
    die('Could not connect: ' . mysql_error()); 
} 
$query="select * from new where durl = tmp"; 
$result = mysql_query($query); 
if (mysql_num_rows($result)>0) { 
    // return value of col 2 
} 
else { 
$sql = 'INSERT INTO new '. 
     '(durl,surl) '. 
     'VALUES ("tmp", "XYZ")'; 
mysql_select_db('a4806808_my'); 
$retval = mysql_query($sql, $conn); 
mysql_close($conn); 
} 
?> 
+1

什么是你的问题.. ?? –

+0

但mysql_num_rows在php 5.3中给出了一个错误 – Nilay

回答

0

检查两个数据库字段类型ID文本或varchar我认为TMP是一个字符串衣被合计,所以你需要在报价则 尝试匹配: -

$query="select * from new where durl = 'tmp'"; 
    $result = mysql_query($query); 
    if (mysql_num_rows($result)>0) { 
     // return value of col 2 
    } 
    else { 
    $sql = 'INSERT INTO new 
      (durl,surl) 
      VALUES ("tmp", "XYZ")'; 
    mysql_select_db('a4806808_my'); 
    $retval = mysql_query($sql, $conn); 
    mysql_close($conn); 
+0

另一方面,如果'tmp'应该是一个PHP变量,那么查询字符串应该是''select * from new where durl ='$ tmp' “'。在这一点上,还应该提到的是,您将需要采取预防措施防止SQL注入,当然,不应该使用mysql_ *命令,而应该使用mysqli_ * comannds。 – cars10m

0

继续之前,选择数据库与您的查询和@Rakesh说,如果数据库类型是文本或varchar包装你的价值与引号。

EG:

$dbhost = '****'; 
$dbuser = '****'; 
$dbpass = '****'; 
$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die(mysql_error()); 
mysql_select_db('a4806808_my') or die("couldn't select the database"); //select your database before continuing 

$query="select * from new where durl = 'tmp'"; //use quotation marks around 'tmp' as rakesh said. 
$result = mysql_query($query); 
if (mysql_num_rows($result)>0) { 
    // return value of col 2 
} else { 
    $sql = 'INSERT INTO new '. 
     '(durl,surl) '. 
     'VALUES ("tmp", "XYZ")'; 
    $retval = mysql_query($sql, $conn); 
} 

mysql_close($conn); //close your connection after everything is done 
0

在MySQL中,你应该引用一个字符串 '' 或 “” 是这样的:

$query="select * from new where durl = 'tmp'"; 

如果TMP是一个PHP变量,你的代码应该喜欢那:

$query="select * from new where durl = '$tmp'"; 
+0

但是mysql_num_rows在php 5.3中给出了一个错误 – Nilay

相关问题