我正在尝试测试特定条件的记录是否存在。
$con = new mysqli('127.0.0.1', 'root', '', 'mysql');
if ($con->query("select count(*) from userpost where userid = 1000004") != null)
{
echo "exist";
}
else
{
echo "not exist";
}
这是正确的方法吗?
或者让我知道是否有更好的事情
答案 0 :(得分:2)
试试这个
if ($con->query("select user_id from userpost where userid = 1000004 LIMIT 1 ") != null)
{
echo "exist";
}
else
{
echo "not exist";
}
答案 1 :(得分:1)
我认为这是假设userid
是主键的最佳方式。你不能比where子句中的主键获得更好的性能(假设不存在连接,联合等)。
答案 2 :(得分:0)
$ con>查询永远不会等于 null 。如php手册中所述。 link
失败时返回FALSE。用于成功的SELECT,SHOW,DESCRIBE或EXPLAIN查询 mysqli_query()将返回一个mysqli_result对象。对于其他成功的查询 mysqli_query()将返回TRUE。
使用fetch_row从查询结果中获取行。 link
$con = new mysqli('127.0.0.1', 'root', '', 'mysql');
$result = $con->query("select exists( select * from userpost where userid = 1000004 )");
if ( $result !== FALSE )
{
$row = $result->fetch_row();
if( $row[0] != 0 )
{
echo 'exists';
}
else
{
echo 'not exist';
}
}
else
{
echo 'error';
}
$result->close();