我有一个PHP函数,它将URL插入MySQL,但只有那些直到执行时才存在的网址。我有一个问题,我的 if 条件被简单地忽略了,所以一切都进入数据库,忽略了条件。代码在这里:
function storeLink($url,$gathered_from) {
global $conn;
$querycheck = "SELECT COUNT(*) FROM test WHERE link = '$url'";
$resultcheck = mysqli_query($conn, $querycheck);
$row = mysqli_fetch_array($resultcheck, MYSQLI_ASSOC);
if($row['COUNT(*)'] < 1);
{
echo "<font color='red'>".$row['COUNT(*)']."</font>";
$url = mysqli_real_escape_string($conn,$url);
$gathered_from = mysqli_real_escape_string($conn,$gathered_from);
$query = "INSERT INTO test (link, source) VALUES ('$url', '$gathered_from')";
mysqli_query($conn,$query) or die('Error, insert query failed');
}
}
我尝试了MySQL计数和PHP mysqli_num_rows,但仍然相同。无论 if 语句中的条件是什么,它都会忽略它。请帮忙...
function storeLink($url,$gathered_from) {
global $conn;
$querycheck = "SELECT COUNT(*) as CNT FROM test WHERE link = '$url'";
$resultcheck = mysqli_query($conn, $querycheck);
$row = mysqli_fetch_array($resultcheck, MYSQLI_ASSOC);
if($row['CNT'] < 1) {
echo "<font color='red'>".$row['CNT']."</font>";
$url = mysqli_real_escape_string($conn,$url);
$gathered_from = mysqli_real_escape_string($conn,$gathered_from);
$query = "INSERT INTO test (link, source) VALUES ('$url', '$gathered_from')";
mysqli_query($conn,$query) or die('Error, insert query failed');
}
}
或
function storeLink($url,$gathered_from) {
global $conn;
$querycheck = "SELECT link FROM test WHERE link = '$url'";
$resultcheck = mysqli_query($conn, $querycheck);
$row = mysqli_fetch_array($resultcheck, MYSQLI_ASSOC);
if(mysqli_num_rows($resultcheck)==0) {
echo "<font color='red'>".mysqli_num_rows($resultcheck)."</font>";
$url = mysqli_real_escape_string($conn,$url);
$gathered_from = mysqli_real_escape_string($conn,$gathered_from);
$query = "INSERT INTO test (link, source) VALUES ('$url', '$gathered_from')";
mysqli_query($conn,$query) or die('Error, insert query failed');
}
}
试试这个if($row['COUNT(*)'] < 1){
而不是if($row['COUNT(*)'] < 1);{
function storeLink($url,$gathered_from) {
global $conn;
$querycheck = "SELECT COUNT(*) as TotalRow FROM test WHERE link = '$url'";
$resultcheck = mysqli_query($conn, $querycheck);
$row = mysqli_fetch_array($resultcheck, MYSQLI_ASSOC);
if($row['TotalRow'] == 0)
{
echo "<font color='red'>".$row['TotalRow']."</font>";
$url = mysqli_real_escape_string($conn,$url);
$gathered_from = mysqli_real_escape_string($conn,$gathered_from);
$query = "INSERT INTO test (link, source) VALUES ('$url', '$gathered_from')";
mysqli_query($conn,$query) or die('Error, insert query failed');
}
}
INSERT INTO test (link, source) VALUES ('$url', '$gathered_from')
WHERE NOT EXISTS (
SELECT COUNT(*) as TotalRow FROM test WHERE link = '$url'
) LIMIT 1;
如您所见,您只需 1 个查询即可完成整个工作