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
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.
I suggerimenti che do più spesso:
- Le funzioni mysql_* non fanno più parte di PHP. Usa PDO o MySQLi.
- Il supporto a PHP 5.x è cessato l'1 gennaio 2019, e con esso le funzioni mysql_*. Che ti piaccia o no.
- Non memorizzare le password in chiaro nella base di dati. Usa password_hash().
- Indenta correttamente il codice e usa nomi significativi per gli identificatori.
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.
I suggerimenti che do più spesso:
- Le funzioni mysql_* non fanno più parte di PHP. Usa PDO o MySQLi.
- Il supporto a PHP 5.x è cessato l'1 gennaio 2019, e con esso le funzioni mysql_*. Che ti piaccia o no.
- Non memorizzare le password in chiaro nella base di dati. Usa password_hash().
- Indenta correttamente il codice e usa nomi significativi per gli identificatori.
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.
I suggerimenti che do più spesso:
- Le funzioni mysql_* non fanno più parte di PHP. Usa PDO o MySQLi.
- Il supporto a PHP 5.x è cessato l'1 gennaio 2019, e con esso le funzioni mysql_*. Che ti piaccia o no.
- Non memorizzare le password in chiaro nella base di dati. Usa password_hash().
- Indenta correttamente il codice e usa nomi significativi per gli identificatori.
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")
Codice:INSERT INTO `dati`(`id`, `numero`, `nome`, `email`) VALUES (54, 24, Un Nome, nome@mail.it)
I suggerimenti che do più spesso:
- Le funzioni mysql_* non fanno più parte di PHP. Usa PDO o MySQLi.
- Il supporto a PHP 5.x è cessato l'1 gennaio 2019, e con esso le funzioni mysql_*. Che ti piaccia o no.
- Non memorizzare le password in chiaro nella base di dati. Usa password_hash().
- Indenta correttamente il codice e usa nomi significativi per gli identificatori.
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...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 .seconda procedura faccio clik su esegui ma mi appare 2 righe stessi valori
I suggerimenti che do più spesso:
- Le funzioni mysql_* non fanno più parte di PHP. Usa PDO o MySQLi.
- Il supporto a PHP 5.x è cessato l'1 gennaio 2019, e con esso le funzioni mysql_*. Che ti piaccia o no.
- Non memorizzare le password in chiaro nella base di dati. Usa password_hash().
- Indenta correttamente il codice e usa nomi significativi per gli identificatori.
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.
I suggerimenti che do più spesso:
- Le funzioni mysql_* non fanno più parte di PHP. Usa PDO o MySQLi.
- Il supporto a PHP 5.x è cessato l'1 gennaio 2019, e con esso le funzioni mysql_*. Che ti piaccia o no.
- Non memorizzare le password in chiaro nella base di dati. Usa password_hash().
- Indenta correttamente il codice e usa nomi significativi per gli identificatori.
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'>";
I suggerimenti che do più spesso:
- Le funzioni mysql_* non fanno più parte di PHP. Usa PDO o MySQLi.
- Il supporto a PHP 5.x è cessato l'1 gennaio 2019, e con esso le funzioni mysql_*. Che ti piaccia o no.
- Non memorizzare le password in chiaro nella base di dati. Usa password_hash().
- Indenta correttamente il codice e usa nomi significativi per gli identificatori.
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>
I suggerimenti che do più spesso:
- Le funzioni mysql_* non fanno più parte di PHP. Usa PDO o MySQLi.
- Il supporto a PHP 5.x è cessato l'1 gennaio 2019, e con esso le funzioni mysql_*. Che ti piaccia o no.
- Non memorizzare le password in chiaro nella base di dati. Usa password_hash().
- Indenta correttamente il codice e usa nomi significativi per gli identificatori.
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
Ultima modifica di wwt021166 : 30-10-2020 alle ore 14.23.10
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>";
I suggerimenti che do più spesso:
- Le funzioni mysql_* non fanno più parte di PHP. Usa PDO o MySQLi.
- Il supporto a PHP 5.x è cessato l'1 gennaio 2019, e con esso le funzioni mysql_*. Che ti piaccia o no.
- Non memorizzare le password in chiaro nella base di dati. Usa password_hash().
- Indenta correttamente il codice e usa nomi significativi per gli identificatori.
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?
I suggerimenti che do più spesso:
- Le funzioni mysql_* non fanno più parte di PHP. Usa PDO o MySQLi.
- Il supporto a PHP 5.x è cessato l'1 gennaio 2019, e con esso le funzioni mysql_*. Che ti piaccia o no.
- Non memorizzare le password in chiaro nella base di dati. Usa password_hash().
- Indenta correttamente il codice e usa nomi significativi per gli identificatori.
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>
Ultima modifica di wwt021166 : 30-10-2020 alle ore 18.04.47
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.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);
?>
I suggerimenti che do più spesso:
- Le funzioni mysql_* non fanno più parte di PHP. Usa PDO o MySQLi.
- Il supporto a PHP 5.x è cessato l'1 gennaio 2019, e con esso le funzioni mysql_*. Che ti piaccia o no.
- Non memorizzare le password in chiaro nella base di dati. Usa password_hash().
- Indenta correttamente il codice e usa nomi significativi per gli identificatori.
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
Ultima modifica di wwt021166 : 30-10-2020 alle ore 23.15.48
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.
I suggerimenti che do più spesso:
- Le funzioni mysql_* non fanno più parte di PHP. Usa PDO o MySQLi.
- Il supporto a PHP 5.x è cessato l'1 gennaio 2019, e con esso le funzioni mysql_*. Che ti piaccia o no.
- Non memorizzare le password in chiaro nella base di dati. Usa password_hash().
- Indenta correttamente il codice e usa nomi significativi per gli identificatori.
per il momento grazie provo a fare qualche prova
grazie