sql >> Database >  >> RDS >> Mysql

SQL LIKE-query mislukt - fatale fout in voorbereide instructie

Voor LIKE clausule, gebruik dit:

SELECT ARTICLE_NO FROM AUCTIONS1 WHERE upper(ARTICLE_NAME) LIKE CONCAT('%', ?, '%')

Wat betreft de tabelnaam, het is een uiterst slechte gewoonte om tabelnamen als parameters te hebben.

Als je het om de een of andere reden toch moet doen, moet je het in de zoektekst insluiten voordat je de zoekvraag voorbereidt:

$countQuery = "SELECT ARTICLE_NO FROM $table_name WHERE upper(ARTICLE_NAME) LIKE CONCAT('%', ? ,'%')";
if ($numRecords = $con->prepare($countQuery)) {
    $numRecords->bind_param("s", $brand);
    $numRecords->execute();
    $data = $con->query($countQuery) or die(print_r($con->error));
    $rowcount = mysql_num_rows($data);
    $rows = getRowsByArticleSearch($query, $table, $max);
    $last = ceil($rowcount/$page_rows);
}


  1. Volgorde Door een parameter voor de kolomnaam te gebruiken

  2. Gegevens gebruiken die zijn beveiligd met een aangepaste sleutelopslag van Linux

  3. Hoe vergrendel ik lezen/schrijven naar MySQL-tabellen zodat ik kan selecteren en vervolgens kan invoegen zonder dat andere programma's de database lezen/schrijven?

  4. invoerbestand lijkt een dump in tekstformaat te zijn. Gebruik alstublieft psql