Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

PHP:bộ đếm thích / không thích

Những gì bạn đang thấy là table là một trong những các từ dành riêng cho MySQL nhưng bạn đang cố gắng sử dụng nó làm tên cột. Cột của bạn thực sự được gọi là table_name dựa trên câu hỏi của bạn.

Một truy vấn với trình giữ chỗ trông giống như sau:

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

Ghi nhớ với mysqli bạn có thể thực hiện truy vấn này bằng cách thực hiện điều này:

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

Tài liệu mô tả quy trình này chi tiết hơn, nhưng "sss" điều đề cập đến ba chuỗi và ba giá trị được chuyển vào dưới dạng tham số.

Có lẽ bạn nên sử dụng PDO vì nó ít kén chọn sử dụng hơn mysqli . Tốt hơn nữa là sử dụng khung cơ sở dữ liệu như Doctrine để thực hiện rất nhiều công việc bẩn thỉu của SQL cho bạn. Thậm chí tốt hơn vẫn là sử dụng một khuôn khổ như CodeIgnighter , CakePHP hoặc FuelPHP để cung cấp cho bạn một nền tảng để xây dựng. Việc xây dựng các ứng dụng bằng tay từ đầu cực kỳ tốn thời gian và dễ xảy ra lỗi hơn đáng kể.

Một điều cần lưu ý nữa là bạn nên thử và sử dụng cách đặt tên nhất quán trong mã của mình. Bạn tham khảo $table làm giá trị cho table_name , vì vậy nó có lẽ phải là $table_name để bắt đầu với.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Máy chủ của chúng tôi không thể xử lý hơn 20 yêu cầu / giây

  2. Django trên Google App Engine với Cloud SQL trong môi trường nhà phát triển

  3. Cập nhật nhiều giá trị trong MySQL

  4. Tại sao Tìm kiếm thông minh lại nhanh như vậy trên facebook

  5. nhóm theo lần xuất hiện đầu tiên và lần cuối cùng