Php 如何检查特定mysql表中特定列的任何行中是否存在值

Php 如何检查特定mysql表中特定列的任何行中是否存在值,php,mysql,sql,Php,Mysql,Sql,我需要用脚本检查数据库中是否存在值。 该值基于一个变量,该字段是一个长文本 // ...:::BEGIN REGISTRATION:::... //Add key format for hikashop $pay = "PayPal transaction id: $pay"; $link = mysql_connect($host, $user, $pass); mysql_select_db($dbo); if (!$link) { die('Could not connect'

我需要用脚本检查数据库中是否存在值。 该值基于一个变量,该字段是一个长文本

// ...:::BEGIN REGISTRATION:::...

//Add key format for hikashop
$pay = "PayPal transaction id: $pay";

$link = mysql_connect($host, $user, $pass);
mysql_select_db($dbo);
if (!$link)
  {
  die('Could not connect');
  }

// check if Transaction ID is available on the default website.
$query = mysql_query ("SELECT * FROM jh23m_hikashop_history WHERE history_data = '$pay'");
$result = mysql_num_rows($query);
echo $result;

// Verifica che esiste almeno una riga contente la transazione. 
// Se si procedi con la response e salva nel db, altrimenti rispondi che la key non è stata trovata.
if ($result == 0){
    die ('Your transaction has not been found. Please enter your payment transaction correctly or contact the support');
}
奇怪的是,有些价值被发现了,但很多却没有! $pay来自一个$u帖子,我添加了$pay=“PayPal交易id:$pay”;使其格式化为商店网站制作的格式

请帮忙

编辑:我制作了一部分代码,尝试看看为什么不匹配。 这是通过阵列得到的结果: [0]0[0[0]=[0[0]0[0[0]0[0]0[0[0]0[0]0[0]0[3]=>59P88560S9783170B[4]0[0]0[0[0]0[0]0[0]0[0[0]0[0]0[0]0[0]0[0]0[0[0]0[0]0[0]0[0]0]0[0]0]0]0]0]0]0]0[0[0[0[0]0]0]7]0]0]0]0]0]0[0[0[0[0]0[0[0[0[0]0]0]0]0[0]0[0[0[0]0]0]0]0]0]0]0]0]0]0]0[0[0[0[0[0[0]0[0[0]0]0]5308[14]=>85B43558SH819711N[15]=>78R85507FR2081540[16]=>96F736575285431M[17]=>87V99180GV2251342[18]=>4G459145SE959020V[19]=>86U00726DL9205244[20]=>70820350T9653825F[21]=>8K002091YN0079914[22]=>8SD993824R7167708[23]=>93L886231K973983G[24]=>54U7746727T9653825K]=>3WR4000656945550Y[28]=>59P88560S9783170B[29]=>8H24117S01162917[30]=>9WC475K89394047[31]=>83L6687699339330K[32]=>1BE09674W4880373N[33]=>3JC01978GH9146509[34]=>3138116BJ159335S[35]=>17V97629HJ1944[36]=>4XG15144CK988864F[37]=>18633YF12325833N28353N28633N286335[35]=>

我尝试了这种脚本来了解原因:

// check if Transaction ID is available on the default website.
$query = mysql_query ("SELECT * FROM jh23m_hikashop_history");
$result = mysql_num_rows($query);
while(($row = mysql_fetch_array($query))) {
    $paypal_ids[] =$row['history_data'];
}
//print_r ($paypal_ids);
// ora cerca il valore %pay
$paypal_ids_split = implode("", $paypal_ids);
//print_r ($paypal_ids_split);
$paypal_ids_clean = explode ("PayPal transaction id: ", $paypal_ids_split);
print_r ($paypal_ids_clean);

if (in_array($pay, $paypal_ids_clean)){
    echo "Match";
} else 
{ echo "Does not matco";
}
echo $pay;
还是不匹配?WTF

但如果我用这个,它会匹配!!世界跆拳道联盟? 匹配:59P88560S9783170B


可能是某些字节使其变脏了吗

这是我不久前在这个问题上找到的帖子中保存的

while ($row = mysql_fetch_array($result, MYSQL_ASSOC))

然后您可以使用MYSQL_NUM切换回numeric,或者使用MYSQL_both切换回numeric

您这样做了吗,MYSQL_fetch_array($result);?我认为唯一的可能性是,$pay有时与您的值不匹配,返回0,@anilCSE with mysql_num_rows($query)就足够了…顺便说一句,数据库内部的一些行是空的,可能是个问题Emilio?您必须显示数据库上jh23m_hikashop_history.history_数据中的内容,美元工资里有什么。这让我很傻!:(似乎不起作用。我确信我遇到的问题不是代码本身,而是数据字段。因为其中一个字段是由脚本获取的,因为我可能是手动添加的。相反,由hikashop软件添加的其他字段可能不同……有没有发现说“检查此字段上是否存在此$value?”不完全匹配?我看到我尝试集成的软件在保存时使用:ob_get_clean。这可能会影响字符串的匹配?