Требуется простая форма результата mysqli - PullRequest
0 голосов
/ 09 ноября 2018

Я обновляю mysqli с mysql. Я знаю, как использовать основные операторы подключения и запроса. Но я не могу заставить работать результат. Все найденные в сети решения ослепили меня наукой. Я хотел бы, чтобы "mysql_result" работал в mysqli.

$alltb = "SELECT * FROM mytable";
$alltbd=mysqli_query($conned, $alltb);
$num_all=mysqli_num_rows($alltbd); 
mysqli_close($conned);
$i = 0;
while($i < $num_all){ 
    $ttt=mysql_result($alltbd,$i,"ttt"); 
    $sss=mysql_result($alltbd,$i,"sss");
    print $ttt . " and " . $sss;
$i++;
}

Любая помощь с благодарностью. Я не хочу использовать такие вещи, как fetch, для каждого или массива. Я бы хотел, чтобы все было просто.

Гарри Джонс Швеция

Ответы [ 2 ]

0 голосов
/ 10 ноября 2018

MySQL и MySQLi - это расширения базы данных PHP, реализованные с использованием инфраструктуры расширений PHP. Расширения базы данных PHP используются для написания кода PHP для доступа к базе данных. Они предоставляют API базы данных для предоставления интерфейсов для использования функций базы данных.

Расширение MySQL устарело и не будет доступно в будущих версиях PHP. Рекомендуется использовать расширение MySQLi с PHP 5.5 и выше.

MySQL:

  • Добавлено расширение MySQL в версии PHP 2.0. и не рекомендуется с PHP 5.5.0.
  • MySQL предоставляет процедурный интерфейс.

  • Расширение MySQL не поддерживает хранимую процедуру.

  • Отставания в MySQL отстают в безопасности и других специальных функциях,
    сравнительно.

  • Транзакции обрабатываются только запросами SQL.
  • Каталог расширений: ext / mysql.

MySQLi

  • Расширение MySQLi добавлено в PHP 5.5 и будет работать на MySQL 4.1.3 или выше.
  • MySQLi поддерживает подготовленные операторы.
  • MySQLi предоставляет как процедурный, так и объектно-ориентированный интерфейс.
  • MySQLi поддерживает процедуру хранения.
  • Расширение MySQLi с повышенной безопасностью и улучшенной отладкой.
  • MySQLi поддерживает транзакции через API.
  • Каталог расширений: ext / mysqli.

Для установки MySQLi, нажмите здесь: http://php.net/manual/en/mysqli.installation.php

Примечание:

Хотя расширение MySQL устарело, для обратной совместимости оно будет доступно. Но не используйте, если вы запускаете что-то новое, и порекомендуйте перенести более старое из mysql в расширение mysqi.

Другие преимущества MySQLi

  • Функция MySQLi mysqli_query () позволяет принудительно выполнять подверженные ошибкам запросы и предотвращает ошибки, такие как SQL-инъекция.
  • Используя выборку данных MySQLi, мы можем получить буферизованный или небуферизованный на основе Размер ресурса сервера.
  • MySQLi API позволяет выполнять несколько запросов с одним выражением используя функцию multi_query ().

Вы можете подключить свое приложение к базе данных двумя способами:

  1. Связь с объектно-ориентированным способом
  2. Связь с процедурным способом

Пример (MySQLi процедурный)

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}

$sql = "SELECT id, firstname, lastname FROM MyGuests";
$result = mysqli_query($conn, $sql);

if (mysqli_num_rows($result) > 0) {
    // output data of each row
    while($row = mysqli_fetch_assoc($result)) {
        echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
    }
} else {
    echo "0 results";
}

mysqli_close($conn);
?>

Пример (объектно-ориентированный MySQLi)

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

$sql = "SELECT id, firstname, lastname FROM MyGuests";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    echo "<table><tr><th>ID</th><th>Name</th></tr>";
    // output data of each row
    while($row = $result->fetch_assoc()) {
        echo "<tr><td>".$row["id"]."</td><td>".$row["firstname"]." ".$row["lastname"]."</td></tr>";
    }
    echo "</table>";
} else {
    echo "0 results";
}
$conn->close();
?>

Выбор данных с помощью PDO (+ подготовленные операторы)

<?php
echo "<table style='border: solid 1px black;'>";
echo "<tr><th>Id</th><th>Firstname</th><th>Lastname</th></tr>";

class TableRows extends RecursiveIteratorIterator { 
    function __construct($it) { 
        parent::__construct($it, self::LEAVES_ONLY); 
    }

    function current() {
        return "<td style='width:150px;border:1px solid black;'>" . parent::current(). "</td>";
    }

    function beginChildren() { 
        echo "<tr>"; 
    } 

    function endChildren() { 
        echo "</tr>" . "\n";
    } 
} 

$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDBPDO";

try {
    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $stmt = $conn->prepare("SELECT id, firstname, lastname FROM MyGuests"); 
    $stmt->execute();

    // set the resulting array to associative
    $result = $stmt->setFetchMode(PDO::FETCH_ASSOC); 
    foreach(new TableRows(new RecursiveArrayIterator($stmt->fetchAll())) as $k=>$v) { 
        echo $v;
    }
}
catch(PDOException $e) {
    echo "Error: " . $e->getMessage();
}
$conn = null;
echo "</table>";
?>
0 голосов
/ 09 ноября 2018

Вы можете сделать mysqli_fetch_all, например:

$query = "SELECT * FROM mytable";

$sqlResult = mysqli_query($conned, $query);

$allRecords = mysqli_fetch_all($sqlResult, MYSQLI_ASSOC); 

mysqli_close($conned);

foreach($allRecords as $record) {
    $ttt = $record['ttt']; 
    $sss = $record['sss'];
    print $ttt . " and " . $sss;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...