Rozdiel medzi SELECT-om z tabuľky a view - chyba 1615 - fórum

Kategorie: Webhosting / Databáze

přidatNový příspěvek

Chcete-li odebírat toto téma e-mailem, přihlašte se nebo se nejprve zaregistrujte.

Rozdiel medzi SELECT-om z tabuľky a view - chyba 1615

David Loevy, 04.08.2015 20:10:56

Na wedos-e mám prenajatý webhosting a v MySQL vytvorenú v databáze sadu db-tabuliek a niekoľko view - všetko urobené cez "phpMyAdmin" pod administratívnym účtom, štandartne príkazmi CREATE TABLE ..., resp. CREATE VIEW XY AS SELECT ...).

Vyskytol sa mi problém, že v prípade výberu a zobrazenia (cez PHP stránku) údajov z db-view sa vypisuje chyba:
SQLSTATE[HY000]: General error: 1615 Prepared statement needs to be re-prepared (SQL: select * from `nejakeview` where ...)

pričom takmer totožná PHP stránka s výberom údajov priamo z db-tabuľky funguje bez problémov.

Poznámka: ak si spustím "Browse" nad danými view cez "phpMyAdmin" tak údaje z view sa zobrazia v poriadku. Rovnako tiež ak si spustím SQL-príkaz (rovnaký ako je na PHP-stránke) priamo v "phpMyAdmin", tiež sa data zobrazia bez problémov.

Nemá s tým niekto skúsenosť, v čom môže byť chyba? Ako to fixnúť?

Re: Rozdiel medzi SELECT-om z tabuľky a view - chyba 1615

David Loevy, 06.08.2015 21:44:23

Táto chyba sa vyskytuje iba pri výbere z db-view v aplikácii vytvorenej v Laravel framework-u.
Nepomôže ani vytvorenie eloquent modelu pre toto db-view a prístup k datám z db-view cez model:

Route::get('Test8', function() {
$UserData = BizInfo::where('user_id','=',3)->get();
$Username = $UserData[0]->username;
return $Username." - toto je výber z db-view bizinfo (3.spôsob - cez model)";
});

Výber z db-view cez "klasický" PHP kód funguje:

php
$servername = "MYSQLSERVER";
$username = "MYUSERNAME";
$password = "MYPASSWORD";
$dbname = "MYDATABASE";
echo "test02: select from db-view BIZINFO";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT user_id, username, first_name, last_name FROM bizinfo";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "id: " . $row["user_id"]. ": Username: ".$row["username"].", Full name: ".$row["first_name"]." ".$row["last_name"];
}
} else {
echo "0 results";
}
$conn->close();

Přihlášení zákazníka

Nemáte ještě zákaznický účet? Registrace

Copyright © WEDOS, 2018

Facebook RSS