Мой SQLi (база данных не выбрана)

после прочтения большого количества отзывов от людей, говорящих, что я должен использовать MySQLi, а не MySQL, я попытался изменить свое соединение. Однако я думаю, что теперь немного перепутал, так как отображается «База данных не выбрана»:

<?php

//mysql_connect('localhost', 'root', 'secret');
//mysql_select_db('edgeserver');

$mysqli_connection = new MySQLi('localhost', 'root', 'secret', 'edgeserver');
if ($mysqli_connection->connect_error) {
echo "Not connected, error: " . $mysqli_connection->connect_error;
}
else {
echo "Connected.";
}

$sql = "update SessionLogs
set BetStatusID = 2
where resultID = 0
and eventstatusid <> 2
and betstatusid <> 2
limit 1
";

$sql2 = "update SessionLogs
set EventStatusID = 2
where resultID = 0
and eventstatusid <> 2
and betstatusid <> 2
limit 1
";

$sql3 = "SELECT SessionLogs.sessionid, SessionLogs.eventid, Result.Winner, Odds.OddsA,
Odds.OddsB, EventStatus.EventStatus, BetStatus.BetStatus, EventInfo.Title,
EventInfo.Opponent1, EventInfo.Opponent2
FROM  SessionLogs INNER JOIN
Result ON SessionLogs.resultid = Result.ResultID INNER JOIN
Odds ON Result.OddsID = Odds.OddsID INNER JOIN
EventStatus ON SessionLogs.eventstatusid = EventStatus.EventStatusID INNER JOIN
BetStatus ON SessionLogs.betstatusid = BetStatus.BetStatusID INNER JOIN
EventInfo ON SessionLogs.slotid = EventInfo.SlotID
where activestatusid > 0
and SessionLogs.betstatusid = 2
and sessionlogs.eventstatusid = 2
Order by EventID desc
LIMIT 1";


$res = mysql_query($sql);
$res2 = mysql_query($sql2);
$res3 = mysql_query($sql3);
$xml = new XMLWriter();

$xml->openURI("php://output");
$xml->startDocument();
$xml->setIndent(true);

$xml->startElement('BetCancel');
$xml->writeAttribute('timestamp', date('c'));

if($res3 === FALSE) {
die(mysql_error()); // TODO: better error handling
}

while ($row = mysql_fetch_assoc($res3)) {
$xml->startElement("Event");

$xml->writeAttribute('sessionid', $row['sessionid']);
$xml->writeAttribute('eventid', $row['eventid']);
$xml->writeAttribute('Winner', $row['Winner']);
$xml->writeAttribute('OddsA', $row['OddsA']);
$xml->writeAttribute('OddsB', $row['OddsB']);
$xml->writeAttribute('EventStatus', $row['EventStatus']);
$xml->writeAttribute('BetStatus', $row['BetStatus']);
$xml->writeAttribute('Title', $row['Title']);
$xml->writeAttribute('Opponent1', $row['Opponent1']);
$xml->writeAttribute('Opponent2', $row['Opponent2']);

$xml->endElement();
}

$xml->endElement();

header('Content-type: text/xml');
$xml->flush();

?>

пожалуйста помоги.

0

Решение

Вы хорошо начали.

Смотрите мои комментарии ниже:

//Initialize connection - good.
$mysqli_connection = new MySQLi('localhost', 'root', 'secret', 'edgeserver');
if ($mysqli_connection->connect_error) {
echo "Not connected, error: " . $mysqli_connection->connect_error;
}
else {
echo "Connected.";
}

//... Sql statements go here

//You are using mysql_query instead of mysqli query functions
//therefore replace the lines below.
//$res = mysql_query($sql);
//$res2 = mysql_query($sql2);
//$res3 = mysql_query($sql3);

//Use these for queries
if ($res = $mysqli_connection->query($sql)
{
//if sql query succeeds
}

//Use the pattern above for the other sql queries.
1

Другие решения

У тебя есть mysql в вашем коде. Переключите это на mysqli,
Вы также можете настроить ваше соединение как переменную. Установите это равным $db или что-то.

Это:

$res = mysql_query($sql);
$res2 = mysql_query($sql2);
$res3 = mysql_query($sql3);

Должно быть так:

$res = $db->query($sql);
$res2 = $db->query($sql2);
$res3 = $db->query($sql3);

Как и другие случаи mysql

1

Попробуйте изменить localhost на 127.0.0.1. Кроме того, я не знаю, настроили ли вы свою базу данных для работы с паролем, но в некоторых случаях пароль может быть установлен на пустую строку.

0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector