Heim >Backend-Entwicklung >PHP-Tutorial >laravel5.3 führt Fehler in mysql5.1 Fehler aus: 1366 Falsche Ganzzahl

laravel5.3 führt Fehler in mysql5.1 Fehler aus: 1366 Falsche Ganzzahl

WBOY
WBOYOriginal
2016-09-26 08:40:131622Durchsuche

Laravel hat einen Fehler, wenn es unter MySQL5.1 läuft. Der Fehler ist wie folgt:

<code>SQLSTATE[HY000]: General error: 1366 Incorrect integer value: ''1'' for column 'status' at row 1 (SQL: insert into `cases` (`case_name`, `status`, `updated_at`, `created_at`) values ('fdsafdsadsa', '1', 1474504956, 1474504956))
</code>

Aber das PDO, das ich geschrieben habe, hat kein Problem damit, den Test auszuführen

<code>try {
    $sth = $db->prepare('insert into cases(case_name,status,updated_at,created_at) values (?,?,?,?)');
    $sth->bindValue(1, '我也是中文', PDO::PARAM_STR);
    $sth->bindValue(2, '1', PDO::PARAM_INT);
    $sth->bindValue(3, time(), PDO::PARAM_INT);
    $sth->bindValue(4, time(), PDO::PARAM_INT);

    $sth->execute();
} catch (\Exception $e)
{
    echo $e->getMessage();
}</code>

Datentabellenstruktur: laravel5.3 führt Fehler in mysql5.1 Fehler aus: 1366 Falsche Ganzzahl

Ich habe auch online nachgesehen und festgestellt, dass ich SQL_MODE geändert und geändert habe, aber immer noch der Fehler angezeigt wurde

Das Problem mit den doppelten Anführungszeichen wurde durch das Hinzufügen der Shell-Filterung behoben

Antwortinhalt:

Laravel hat einen Fehler, wenn es unter MySQL5.1 läuft. Der Fehler ist wie folgt:

<code>SQLSTATE[HY000]: General error: 1366 Incorrect integer value: ''1'' for column 'status' at row 1 (SQL: insert into `cases` (`case_name`, `status`, `updated_at`, `created_at`) values ('fdsafdsadsa', '1', 1474504956, 1474504956))
</code>

Aber das PDO, das ich geschrieben habe, hat kein Problem damit, den Test auszuführen

<code>try {
    $sth = $db->prepare('insert into cases(case_name,status,updated_at,created_at) values (?,?,?,?)');
    $sth->bindValue(1, '我也是中文', PDO::PARAM_STR);
    $sth->bindValue(2, '1', PDO::PARAM_INT);
    $sth->bindValue(3, time(), PDO::PARAM_INT);
    $sth->bindValue(4, time(), PDO::PARAM_INT);

    $sth->execute();
} catch (\Exception $e)
{
    echo $e->getMessage();
}</code>

Datentabellenstruktur: laravel5.3 führt Fehler in mysql5.1 Fehler aus: 1366 Falsche Ganzzahl

Ich habe auch online nachgesehen und gesagt, dass ich SQL_MODE geändert und geändert habe, aber immer noch den Fehler erhalten habe

Das Problem wurde aufgrund des Problems mit doppelten Anführungszeichen gelöst, das durch das Hinzufügen der Shell-Filterung verursacht wurde

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn