我有一个对我来说没有意义的快速问题。我对MySQL和PHP有点新意,所以我可能会遗漏一些东西。这是我的代码:
$conn = new mysqli('localhost', 'Josh', '**********', '********');
if ($conn->connect_error)
die('Connection failed: ' . $conn->connect_error);
$result = $conn->query('SELECT count(*) as cnt FROM users WHERE id = 1');
$f = $result->fetch_array();
if ($f->cnt == 0) {
echo 'doesn\'t exist';
} else if ($f->cnt == 1){
echo 'does exist';
}
正如您可能知道的那样,这会检查表中是否存在id
。如果是,则回显'does exist'
,否则回声'doesn't exist'
。但是,我有一个小问题。每当我将id = 1
替换为不存在的id
时,它会立即加载并回显'doesn't exist'
。但是,当我使用表中存在的id时,页面会加载但仍然会回显'doesn't exist'
。
任何人都可以帮助我吗?
谢谢你, 约什
答案 0 :(得分:0)
由于id是一个整数,我们可以用以下方式编写查询:
$result = $conn->query('SELECT id FROM users WHERE id = 1');
if ($result->num_rows == 0) {
echo 'doesn\'t exist';
} else {
echo 'does exist';
}
答案 1 :(得分:0)
我修改了它,尝试一下。
$result = $conn->query('SELECT count(id) as cnt FROM users WHERE id = 1'); // or count(*)
$f = $result->fetch_object(); // or use fetch_array(),fetch_assoc() [Search the diff b/w them]
if ($f->cnt == 0) {
echo 'doesn\'t exist';
} else {
echo 'does exist';
}
非面向对象的方法
$conn = mysqli_connect('localhost', 'Josh', '**********', '********');
if (mysqli_connect_errno())
die('Connection failed: ' . mysqli_connect_error);
$result = mysqli_query($conn,'SELECT count(*) as cnt FROM users WHERE id = 1');
$f = mysqli_fetch_array($result); // or mysqli_fetch_assoc($result)
echo $f['cnt'];
if ($f['cnt'] == 0) {
echo 'doesn\'t exist';
} else if ($f['cnt'] == 1){
echo 'does exist';
}