尝试从mysql查询中检索一些信息并在字符串中打印,但无法理解该问题,根据此处http://php.net/manual/en/function.mysql-result.php它应该是正确的但它返回空。
$sql = new mysqli('xxxx', 'xxxx', 'xxxxxx', 'xxxxx');
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit;
}
echo " user id ", $user_id, "\n";
echo "event id ", $event_id, "\n";
$query ="SELECT A1.event_name,A1.start_date,A2.first_name,A2.last_name FROM OWN_EVENTS A1 INNER JOIN USERS A2 ON A1.event_id = $event_id WHERE A2.user_id=A1.user_id ";
$result = $sql->query($query);
if (!$result) {
sendResponse(417, json_encode("Query failed"));
exit;
}
$row = mysql_fetch_row($result);
echo "row[2] ", $row[2], "\n";
echo "row[3] ", $row[3], "\n";
//echo "result",$result,"\n";
$querySend ="SELECT email FROM USERS WHERE user_id = $user_id";
$resultSend = $sql->query($querySend);
if (!resultSend) {
sendResponse(417, json_encode("Query failed"));
exit;
}
$rowSend = mysql_fetch_row($resultSend);
echo "rowSend[0] ", $rowSend[0], "\n";
echo $rowSend["email"];
LOG:
user id 8
event id 95
Warning: mysql_fetch_row() expects parameter 1 to be resource, object given in /var/insertToNotifications.php on line 180
row[2]
row[3]
Notice: Use of undefined constant resultSend - assumed 'resultSend' in /var/insertToNotifications.php on line 187
Warning: mysql_fetch_row() expects parameter 1 to be resource, object given in /var/insertToNotifications.php on line 191
rowSend[0]
导致phpmyadmin:
我的目标是能够打印$body = "Hi,\n\n $row[2],$row[3] has invited you to $row[0] starting $row[1] \n\n \n\n ";
我该怎么做?
答案 0 :(得分:1)
您正在将mysqli_ *函数与已弃用的mysql_ *函数混合使用。你想继续使用mysqli函数来得到你的结果:
$query ="SELECT A1.event_name,A1.start_date,A2.first_name,A2.last_name FROM OWN_EVENTS A1 INNER JOIN USERS A2 ON A1.event_id = $event_id WHERE A2.user_id=A1.user_id ";
$result = $sql->query($query);
if (!$result) {
sendResponse(417, json_encode("Query failed"));
exit;
}
$row = $result->fetch_row($result);
以下是您可以在$result
对象上调用的方法的文档:http://www.php.net/manual/en/class.mysqli-result.php
答案 1 :(得分:1)
你正在混合mysqli(注意i
)和mysql(注意i
的 LACK )。这两个库是 NOT 可互操作的,并且处理/结果从一个意味着绝对没有到另一个。
你可能想要
$row = mysqli_fetch_row($result);
^----
并且可能不应该混合库的过程版本和OOP版本。选择一种风格并坚持下去。