第二个查询有问题。当它到达mysql_fetch_row时-它反冲
mysqli_fetch_row()期望参数1为资源,给定布尔值
现在我也尝试过获取assoc。但这也可以消除错误。我尝试用'$ id'进行第二次查询,没有它,却什么也没有。我想我遗漏了一些非常明显的东西。
我在这里浏览了很多常见的帖子,它们都提到了我给出的错误,但仍然没有找到解决方法。
$con1 = mysqli_connect($dbhost,$dbuser,$dbpass,$dbname);
$con2 = mysqli_connect($dbhost,$dbuser2,$dbpass2,$dbname2);
// Check connections
if($con1)
{ echo("1st Connection Successful "); }
else
{ echo("1st Connection Failed "); }
if($con2)
{ echo("2nd Connection Successful "); }
else
{ echo("2nd Connection Failed "); }
//start first database query
$query = "SELECT id, email FROM ow_base_user ORDER by ID LIMIT 30";
$result = $con1->query($query);
while($row = $result->fetch_row()) {
$rows[]=$row;
$id = $row[0];
$email_row = $row[1];
$email_sub = substr($email_row, 0, 2);
if ( $email_sub == "dk" ) {
$email = "1"; }
elseif ( $email_sub == "sv" ) {
$email = "3"; }
elseif ( $email_sub == "no" ) {
$email = "4"; }
elseif ( $email_sub == "nl" ) {
$email = "5"; }
elseif ( $email_sub == "de" ) {
$email = "2"; }
elseif ( $email_sub == "fi" ) {
$email = "6"; }
else {}
if (isset($email)) {
//start 2nd database query
$query2 = "SELECT country_id FROM website_user WHERE userId = $id LIMIT 1";
$result2 = $con2->query($query2);
$row2 = mysqli_fetch_row($result2);
$country = $row2[6];
if (isset($country)) {
}
if (DEVMODE) {
echo "user id = ".$id." -- ";
echo "email = ".$email." -- ";
echo "COUNTRY = ".$country."<br />";
}
}
}
因此,对代码进行了一些更改,以打印出错误,以防查询失败。
If($result2 === false) {
echo "error while executing mysql: " . mysqli_error($con2);
} else {
在添加此内容后,我收到了错误。
mysqli_error()期望参数1为mysqli,给定为空
好吧,这些错误是由数据库表名称中的错字引起的,感谢您指出错误报告中所有方法的注释。
更新:因此在解决了连接问题之后。我收到通知:未定义的偏移量:$ country中的5 = $ row2 [6];
更新:更改后$ country = $ row2 [0]; -这解决了最后一个问题。
答案 0 :(得分:0)
您可以使用开发版本
error_reporting(E_ALL);
ini_set('display_errors',1);
表示数据库表拼写错误。之后,由于只有1行而不是所有行,因此必须更改要拉的是哪一行。