sql >> Databasteknik >  >> RDS >> Mysql

PHP:gillar/ogillar-räknare

Det du ser är table är ett av de MySQL reserverade ord men du försöker använda det som ett kolumnnamn. Din kolumn heter faktiskt table_name dock baserat på din fråga.

En fråga med platshållare ser ut så här:

INSERT INTO votes (ip, table_name, imgid) 
  VALUES (?, ?, ?)
  ON DUPLICATE KEY UPDATE
    ip=VALUES(ip),
    table_name= VALUES(table_name),
    imgid=VALUES(imgid)

Kom ihåg med mysqli du kan köra den här frågan genom att göra så här:

$sth = $mysqli->prepare("...");
$sth->bind_param("sss", $_SERVER['REMOTE_ADDR'], $table, $imgid);
$sth->execute();

Dokumentationen beskriver denna process mer detaljerat, men "sss" sak hänvisar till tre strängar, och de tre värdena skickas in som parametrar.

Du bör förmodligen använda PDO eftersom det är mycket mindre krångligt att använda än mysqli . Ännu bättre skulle vara att använda ett databasramverk som doktrin att göra mycket av SQL-smutsarbetet åt dig. Ännu bättre skulle vara att använda ett ramverk som CodeIgnighter , CakePHP eller FuelPHP för att ge dig en grund att bygga på. Att konstruera applikationer för hand från grunden är extremt tidskrävande och betydligt mer felbenägen.

En annan sak att notera är att du bör försöka använda konsekvent namngivning i din kod. Du hänvisar till $table som ett värde för table_name , så det borde förmodligen vara $table_name till att börja med.



  1. SQLite MAX

  2. Det går inte att anropa en Oracle-lagrad procedur från SSRS-rapportbyggaren 3.0

  3. Jag har flera frågor vill slå samman alla sökresultat till samma tabell

  4. Anslut tabell till en kapslad array [PHP/MYSQL]