我有这个PHP:
<?php
$client_ip = $_SERVER['REMOTE_ADDR'];
$connection = new mysqli("localhost", "MyNotSoSecretUsername", "MySuperSecretPassword", "MyNotSoSecretDatabaseName");
if ($connection->connect_error) {
die("Connection failed: " . $Connection->connect_error);
}
$check_emails_sent_query = "SELECT `emails` FROM `email-ips` WHERE `ip`='11.111.111.111'";
$check_emails_sent_result = $connection->query($check_emails_sent_query);
echo $check_emails_sent_result;
?>
这是我网站上一小部分功能。此代码段只是为了获取&#34;电子邮件的价值。我的表与IP匹配客户端IP的列(如果它有所不同,则为int
列。
我在我的数据库中添加了11.111.111.111的假条目,并在PHPmyAdmin的SQL控制台上使用了完全相同的查询。我在PHPmyAdmin控制台上得到了一个结果,但这里没有任何回应。
我还检查了连接是否正常,正如您在我的代码中看到的那样。另外,我从我的函数的另一部分粘贴了另一个查询,它可以很好地检索它的数据。
尽管可能是愚蠢或明显的,我似乎无法弄清楚为什么这个特定的查询几乎不会有二十万人检索其数据?
答案 0 :(得分:1)
失败时返回
FALSE
。成功SELECT
,SHOW
,DESCRIBE
或EXPLAIN
次查询mysqli_query()
将返回mysqli_result
个对象。对于 其他成功的查询mysqli_query()
将返回TRUE
。
您可以使用
接收电子邮件if ($result = $connection->query($check_emails_sent_query)) {
while ($row = $result->fetch_row()) {
printf ("%s (%s)\n", $row[0]);
}
}
答案 1 :(得分:1)
Mysqli query()
返回并反对。使用对象:
<?php
$client_ip = $_SERVER['REMOTE_ADDR'];
$connection = new mysqli("localhost", "MyNotSoSecretUsername", "MySuperSecretPassword", "MyNotSoSecretDatabaseName");
if ($connection->connect_error)
{
die("Connection failed: " . $Connection->connect_error);
}
$check_emails_sent_query = "SELECT `emails` FROM `email-ips` WHERE `ip`='11.111.111.111'";
if ($check_emails_sent_result = $connection->query($check_emails_sent_query))
{
while($obj = $check_emails_sent_result->fetch_object())
{
$echo $obj->emails;
}
}
?>
您可以使用fetch_row()
代替fetch_object()
。
对象的文档在这里: