Puncte:0

mysql nu se inserează prin php cli

drapel ru
Ben

Am un script php simplu care este rulat din cli. Am încercat multe variante diferite ale codului mysql, dar, indiferent, linia nu este inserată în baza de date, chiar dacă php spune că este....

<?php
$link = mysql_connect('localhost', '***', '***');
if (!$link) {
    die('Could not connect: ' . mysql_error());
}
mysql_select_db('***');

mysql_query("INSERT INTO email_log (to, from, subject, headers, message, source) VALUES ('1','2','3','4','5','6')");
printf("Last inserted record has id %d\n", mysql_insert_id());
?>

php test.php returnează Ultima înregistrare inserată are id 0 și aceleași scripturi funcționează impecabil printr-un browser web.

Lucruri pe care le-am incercat:

  • Am schimbat proprietatea fișierului la utilizator care ar putea afecta.
  • 4-5 coduri INSERT diferite
vautee avatar
drapel kr
Adăugați mai multe informații la întrebarea dvs. De exemplu, rezultatul DESCRIBE email_log Preluați, de asemenea, orice erori pe care mysql_query le-ar putea ridica, vedeți exemplul #1 în https://www.php.net/manual/en/function.mysql-query.php
drapel in
PHP5 a fost [sfârșitul vieții din 2018](https://www.php.net/eol.php). Utilizați o versiune acceptată de PHP.
Ben avatar
drapel ru
Ben
Hei Gerald, mulțumesc pentru răspuns... Am trecut la o altă versiune instalată 7.0. Aceeași problemă... Nimic raportat în error.log. A făcut eco pentru a trimite prin e-mail linia de inserat și trimis prin e-mail ok... Un conflict între cli și mysql?? Am rulat scripturi yest, se pare să se conecteze, pur și simplu ignoră complet inserția reală.
Puncte:0
drapel ru
Ben

WOW... ce neobișnuit... Fără mesaje de eroare, dar am făcut mult mai multe săpături și depanare pentru a afla că numele rândurilor „TO”, „FROM” și „SOURCE” sunt pe o listă MYSQL restricționată/rezervată.

https://dev.mysql.com/doc/refman/8.0/en/keywords.html

vidarlo avatar
drapel ar
Lecția? Nu vă așteptați ca mysql_query să funcționeze. Verificați dacă funcționează verificând dacă returnează o eroare. Presupunerile sunt mama tuturor nenorocirilor.
Puncte:0
drapel ua
  • Do nu folosește mysql_* interfață în PHP. Do utilizare mysqli_* in schimb. (Sau folosiți DOP.)

  • Do primiți mesajul de eroare și afișați-l.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.