所以问题是$ check变量总是为NULL,即使数据库中已经存在与我编写的SELECT语句匹配的记录,它仍然是null。我知道这很简单,但我找不到错误。我已经尝试过使用empty,isNull,====,但问题是$ check始终为null。为什么它总是空的?
$sql = "SELECT * FROM linkedin_lookup WHERE "
."`given-name`='{$table['given_name']}' && "
."`family-name`='{$table['family_name']}' && "
."`location`='{$table['location']}' && "
."`industry`='{$table['industry']}' && "
."`headline`='{$table['headline']}'";
$results = $db->query($sql);
$check = $results->num_rows;
if ($check):
echo "Record already exist";
else:
$sql = "INSERT INTO linkedin_lookup (`given-name`,`family-name`,`location`,`industry`,`headline`,`date_search`) "
."VALUES "
."('{$table['given_name']}',"
."'{$table['family_name']}',"
."'{$table['location']}',"
."'{$table['industry']}',"
."'{$table['headline']}',"
."'{$now}')";
$db->query($sql);
echo "Succesfully inserted record(s)" . '<br />';
endif;
更新我的代码以反映输入,但仍然接受重复。我的SELECT STATEMENT错了吗?我把&amp;&amp;对,所以它应该扫描所有字段,如果相同。
答案 0 :(得分:1)
那是因为你在查询结果上调用num_rows
(fetch_assoc
相同),而不是数组。
$results = $db->query($sql);
$check = $results->num_rows;
if( $check) {
echo "Record already exists";
}
else {
$sql = "INSERT.....";
}
请注意,您可以尝试将其预先插入并检查affected_rows
- 如果它为零,则由于已存在而无法插入。请注意,您需要在右侧字段中的表格中显示UNIQUE KEY
。
答案 1 :(得分:0)
如果$results
确实包含了某些内容......并且查询实际上是正常的,那么如果它是......我就不知道......
你可以尝试一下......
$db->query($sql);
$results = $db->fetch_assoc();
if (count($results) > 0):
//echo "Record already exist";
else:
答案 2 :(得分:0)
好的,现在它可以工作,我认为类$ db不是mysqli,因为我们使用的是由公司开发的框架。所以我的代码现在如下,它的工作原理。
$sql = "SELECT * FROM linkedin_lookup WHERE "
."`given-name`='{$table['given_name']}' && "
."`family-name`='{$table['family_name']}' && "
."`location`='{$table['location']}' && "
."`industry`='{$table['industry']}' && "
."`headline`='{$table['headline']}'";
$db->query($sql);
$check = $db->fetch_array();
if ($check):
echo "Record already exist";
else:
$sql = "INSERT INTO linkedin_lookup (`given-name`,`family-name`,`location`,`industry`,`headline`,`date_search`) "
."VALUES "
."('{$table['given_name']}',"
."'{$table['family_name']}',"
."'{$table['location']}',"
."'{$table['industry']}',"
."'{$table['headline']}',"
."'{$now}')";
$db->query($sql);
echo "Succesfully inserted record(s)" . '<br />';
endif;