ho creato un database con delle tabelle i primi giorno ha funzionato bene, adesso non riesco piu' a inserire i dati mi da error Messaggio di MySQL: Documentazione
#1364
grazie
Printable View
ho creato un database con delle tabelle i primi giorno ha funzionato bene, adesso non riesco piu' a inserire i dati mi da error Messaggio di MySQL: Documentazione
#1364
grazie
L'errore 1364 indica che stai cercando di inserire un record senza specificare il valore di una (o più) delle colonne, la quale non possiede un valore di default nello schema.
Hai due possibilità: specifica un valore per la colonna mancante, o indica un valore di default nello schema.
un attimo che provo
grazie
anche se scrivo in tutte le tabelle mi da error
Messaggio di MySQL: Documentazione
#1064 -
Non trovo il campo di default delle tabelle
L'errore 1064 è un errore di sintassi, stai sbagliando a scrivere il testo della query.
Il valore di default si chiama "predefinito" nell'interfaccia di PhpMyAdmin.
adesso inserisci i dati anche se scrivo su un campo o tutti . Ma da il messagio di errore
Messaggio di MySQL: Documentazione
#1064 -
grazie
Rappresenta un errore di sintassi, dipende da cosa scrivi come query.
Se vuoi riportarla qui possiamo vedere se e cosa c'è che non va.
un attimo
inserisco nella schermata principale dove ce' la tabella dopo mi viene questo messaggio e clicco su insert
INSERT INTO `dati`(`id`, `numero`, `nome`, `email`)
VALUES ([value-1],[value-2],[value-3],[value-4])
grazie
I [value-1] sono esempi o sono esattamente i valori che stai inserendo? È probabile che l'errore sia dovuto al fatto che mancano le " (virgolette) attorno ai valori di tipo testo. Per esempio questo è corretto:
mentre questo noCodice:INSERT INTO `dati`(`id`, `numero`, `nome`, `email`)
VALUES (54, 24, "Un Nome", "nome@mail.it")
inserimento nelle tabelle
INSERT INTO `database`.`dati` (`id`, `numero`, `nome`, `email`) VALUES (NULL, '8', 'otto', '@8');
dopo che clicco su insert
INSERT INTO `dati`(`id`, `numero`, `nome`, `email`) VALUES ([value-1],[value-2],[value-3],[value-4])
mi appare la scritte
Messaggio di MySQL: Documentazione
#1064 -
pero' mi inserisce la riga lo vedo dal pulsante mostra
Ho dovuto cancellare la tabella blob (per immagini) se no non inseriva nella tabella
ho creato un database e una tabella di nome dati poi appare una schermata dove posso inserire i valori id, numero, nome, email. Dopo l'inserimento dei valori nella tabella una schermata
INSERT INTO `database`.`dati` (`id`, `numero`, `nome`, `email`) VALUES (NULL, '8', 'otto', '@8');
clik su insert e mi appare
INSERT INTO `dati`(`id`, `numero`, `nome`, `email`) VALUES ([value-1],[value-2],[value-3],[value-4])
con il messaggio in rosso
Messaggio di MySQL: Documentazione
#1064 -
pero' mi inserisce la riga lo vedo dal pulsante mostra
Ho dovuto cancellare la tabella blob (per immagini) se no non inseriva nella tabella
prima procedura faccio clik su insert come ho scritto sopra
seconda procedura faccio clik su esegui ma mi appare 2 righe stessi valori
es. inserisco in in una tabella numero 4, nome 4, email 4, e mi appaiono 2 righe uguali
grazie
Quando arrivi a questo punto i dati sono già stati inseriti...Citazione:
poi appare una schermata dove posso inserire i valori id, numero, nome, email. Dopo l'inserimento dei valori nella tabella una schermata [...]
... quindi se poi clicchi "esegui" verrà effettuato un secondo inserimento. Fermati dopo il primo :wink:.Citazione:
seconda procedura faccio clik su esegui ma mi appare 2 righe stessi valori
si facevo clik su esegui e clik su insert e sdoppiava le tabelle (venivano 2 tabelle).
Inserisco i dati nelle tabelle faccio esegui tutto bene.
Se invece inserisco i dati nelle tabelle clik su esegui e clik su insert e esegui Mi appare il messaggio error
bene se faccio clik su esegui inserisce bene senza il messaggio di error
grazie delle risposte
ho un altra domanda
devo inserire un immagine nel batabase e uso tipo blob,
carico immagine dopo clik sulla tabella dove ce' link immagine ma da un messaggio dice il file non dispone di un app associata per eseguire l' azione
grazie
Una volta che l'immagine è caricata dentro al database in una colonna di tipo BLOB, essa "cessa" di essere un'immagine e diventa una generica sequenza di byte.
Quando clicchi sulla tabella il browser riceve quindi un file senza formato specifico, e non sa quindi come aprirlo. Dovresti piuttosto scaricare il file/BLOB e usare "apri con" dal menù contestuale del mouse per indicare al computer di aprirlo con un visualizzatore di immagini.
Non puoi semplicemente "fare un print" di un'immagine, devi predisporre una seconda pagina PHP separata che legga l'immagine dal database (datone l'id o altra chiave primaria) e la mostri impostando gli header opportuni.
La pagina PHP "principale" avrà quindi un riferimento alla suddetta pagina in forma di immagine. Per esempio, se la pagina che legge le immagini si chiama read_image.php, in quella principale potresti avere qualcosa del genere:
Codice PHP:echo "<img src='read_image.php?id=34'>";
Le funzioni mysql_* sono morte con PHP 5.6 da quasi 2 anni, dovresti passare a mysqli o PDO.
read_image.php
La pagina principale:Codice PHP:<?php
if (!isset($_GET['id'])) {
die('Missing image ID');
}
$link = mysqli_connect('localhost', null, null, 'database1');
if (!$link) {
die('Connect Error :' . mysqli_connect_error());
}
$query = 'SELECT image FROM inserimento WHERE id = ?';
$stmt = $mysqli_prepare($link, $query);
if (!$stmt) {
die('Could not prepare query');
}
mysqli_stmt_bind_param($stmt, 'd', $_GET['id']);
mysqli_stmt_execute($stmt);
mysqli_stmt_bind_result($stmt, $image);
mysqli_stmt_fetch($stmt);
header('Content-Type: image/jpeg');
echo $image;
mysqli_stmt_close($stmt);
mysqli_close($link);
?>
Verifica la sintassi. Potresti dover modificare qualcosa in base al contesto.Codice PHP:<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="generator" content="AlterVista - Editor HTML"/>
<title></title>
</head>
<body>
<?php
$link = mysqli_connect('localhost', null, null, 'database1');
if (!$link) {
die('Connect Error :' . mysqli_connect_error());
}
$result = mysqli_query($link, 'SELECT id, name FROM inserimento');
echo " <TABLE BORDER=2>";
echo " <tr> <td>id</td> <td>name</td> <td>image</td> </tr>";
while ($row = mysql_fetch_assoc($result)) {
echo " <tr><td>{$row['id']}</td> <td>{$row['name']}</td> <td><img src='read_image.php?id={$row['image']}'></td></tr>";
}
echo "</table>";
mysqli_free_result($result);
mysqli_close($link);
?>
</body>
</html>
bene quindi sono 2 pagine pagina principale e read_image.php che sono collegate fra loro con la condizione if e link
e' giusto
ho due profili sono sempre io
un attimo provo poi ti dico
grazie
non stampa image mi da
Missing image ID
Nella pagina principale avevo commesso un errore, questa riga
va sostituita con:Codice PHP:echo " <tr><td>{$row['id']}</td> <td>{$row['name']}</td> <td><img src='read_image.php?id={$row['image']}'></td></tr>";
Questo dovrebbe risolvere il problema.Codice PHP:echo " <tr><td>{$row['id']}</td> <td>{$row['name']}</td> <td><img src='read_image.php?id={$row['id']}'></td></tr>";
bene ho cambiato image con id
stesso messaggio missing image id
Le pagine su cui stai effettuando le prove sono online? È possibile vederle in azione per capire cosa c'è che non va?
le pagine sono queste ma non sono online
alla pagina read_image.php ho aggiunto il codice html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="generator" content="AlterVista - Editor HTML"/>
<title>image1</title>
</head>
<body>
<?php
$link = mysqli_connect('localhost', null, null, 'database1');
if (!$link) {
die('Connect Error :' . mysqli_connect_error());
}
$result = mysqli_query($link, 'SELECT id, name FROM inserimento');
echo " <TABLE BORDER=2>";
echo " <tr> <td>id</td> <td>name</td> <td>image</td> </tr>";
while ($row = mysql_fetch_assoc($result)) {
echo " <tr><td>{$row['id']}</td> <td>{$row['name']}</td> <td><img src='image2.php?id={$row['id']}'></td></tr>";
}
echo "</table>";
mysqli_free_result($result);
mysqli_close($link);
?>
</body>
</html>
stampa image.php
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="generator" content="AlterVista - Editor HTML"/>
<title>image2</title>
</head>
<body>
<?php
if (!isset($_GET['id'])) {
die('Missing image ID');
}
$link = mysqli_connect('localhost', null, null, 'database1');
if (!$link) {
die('Connect Error :' . mysqli_connect_error());
}
$query = 'SELECT image FROM inserimento WHERE id = ?';
$stmt = $mysqli_prepare($link, $query);
if (!$stmt) {
die('Could not prepare query');
}
mysqli_stmt_bind_param($stmt, 'd', $_GET['id']);
mysqli_stmt_execute($stmt);
mysqli_stmt_bind_result($stmt, $image);
mysqli_stmt_fetch($stmt);
header('Content-Type: image/jpeg');
echo $image;
mysqli_stmt_close($stmt);
mysqli_close($link);
?>
</body>
</html>
Qui hai "image2.php":
ma poi dici che la pagina si chiamaCodice PHP:echo " <tr><td>{$row['id']}</td> <td>{$row['name']}</td> <td><img src='image2.php?id={$row['id']}'></td></tr>";
è un caso? Il nome deve essere lo stesso.Citazione:
image.php
In image2.php (o image.php) non vanno inseriti tag HTML, perché l'output non è HTML ma un immagine, quindi solo il codice:
questo non spiega comunque il perché del messaggio che riporti. Sembra che la pagina venga richiamata senza passarle l'id, ma nel codice della pagina principale è indicato. Bisognerebbe ispezionare l'output prodotto da quest'ultima per capire se ci sono problemi, per esempio aprendola nel browser e selezionando "visualizza sorgente pagina" dal menù contestuale del mouse.Codice PHP:<?php
if (!isset($_GET['id'])) {
die('Missing image ID');
}
$link = mysqli_connect('localhost', null, null, 'database1');
if (!$link) {
die('Connect Error :' . mysqli_connect_error());
}
$query = 'SELECT image FROM inserimento WHERE id = ?';
$stmt = $mysqli_prepare($link, $query);
if (!$stmt) {
die('Could not prepare query');
}
mysqli_stmt_bind_param($stmt, 'd', $_GET['id']);
mysqli_stmt_execute($stmt);
mysqli_stmt_bind_result($stmt, $image);
mysqli_stmt_fetch($stmt);
header('Content-Type: image/jpeg');
echo $image;
mysqli_stmt_close($stmt);
mysqli_close($link);
?>
Il database: database1,
tabella: inserimento
immagine e' jpg
Tabelle
id,
name,
image
dove ho caricato un immagine
(ho solo caricato 2 righe)
il file ho' chiamato input_image
il secondo out_image
Quindi nella pagina di input ho
echo " <tr><td>{$row['id']}</td> <td>{$row['name']}</td> <td><img src='output_image.php?id={$row['id']}'></td></tr>";
origine pagina output
mi ha dato missing image id
Missing image id vuol dire che alla pagina output_image.php non arriva l'id passato tramite GET.
Eppure nel codice della pagina input_image è chiaramente presente.
C'è sicuramente un problema banale da qualche parte, ma senza vedere le pagine in azione è difficile dare indicazioni.
per il momento grazie provo a fare qualche prova
grazie