Bạn đang trộn các chức năng mysqli_*
với các chức năng mysql_*
. Bạn không thể làm điều đó; Họ không phải là cùng một thư viện.
Chỉ sử dụng mysqli_*
. Vui lòng không sử dụng mysql_*
; Các chức năng mysql_*
đã lỗi thời, không dùng nữa và không an toàn. Sử dụng
$vals = "INSERT INTO `Log` [`Trip`, `Odometer`, `Gallons_Pumped`, `Price_Gallon`]
VALUES ['$trip', '$odom', '$gals', '$ppg']";
1 hoặc $vals = "INSERT INTO `Log` [`Trip`, `Odometer`, `Gallons_Pumped`, `Price_Gallon`]
VALUES ['$trip', '$odom', '$gals', '$ppg']";
2 thay thế.Khối cuối cùng của mã của bạn phải [chưa được kiểm tra]:
$retval = mysqli_query[$vals]; // changed
if [$retval] {
echo "New record created successfully";
} else {
echo "Error: " . $vals . "
" . mysqli_error[$conn]; // changed
}
mysqli_close[$conn]; // changed
Lưu ý sự thay đổi từ
$vals = "INSERT INTO `Log` [`Trip`, `Odometer`, `Gallons_Pumped`, `Price_Gallon`]
VALUES ['$trip', '$odom', '$gals', '$ppg']";
3 thành $vals = "INSERT INTO `Log` [`Trip`, `Odometer`, `Gallons_Pumped`, `Price_Gallon`]
VALUES ['$trip', '$odom', '$gals', '$ppg']";
4. Theo định nghĩa, nếu bạn đạt được điểm đó trong mã của mình thì đó là vì $vals = "INSERT INTO `Log` [`Trip`, `Odometer`, `Gallons_Pumped`, `Price_Gallon`]
VALUES ['$trip', '$odom', '$gals', '$ppg']";
5 được đánh giá thành $vals = "INSERT INTO `Log` [`Trip`, `Odometer`, `Gallons_Pumped`, `Price_Gallon`]
VALUES ['$trip', '$odom', '$gals', '$ppg']";
6 và do đó không phải là một đối tượng.Ngoài ra, xin lưu ý rằng bạn rộng mở để tiêm SQL. Câu lệnh SQL của bạn là đây:SQL injection. Your SQL statement is this:
$vals = "INSERT INTO `Log` [`Trip`, `Odometer`, `Gallons_Pumped`, `Price_Gallon`]
VALUES ['$trip', '$odom', '$gals', '$ppg']";
Nhưng những giá trị đó [
$vals = "INSERT INTO `Log` [`Trip`, `Odometer`, `Gallons_Pumped`, `Price_Gallon`]
VALUES ['$trip', '$odom', '$gals', '$ppg']";
7, v.v.] đến trực tiếp từ người dùng [thông qua $vals = "INSERT INTO `Log` [`Trip`, `Odometer`, `Gallons_Pumped`, `Price_Gallon`]
VALUES ['$trip', '$odom', '$gals', '$ppg']";
8]. Những điều rất xấu có thể xảy ra nếu người dùng của bạn gửi các giá trị chứa, ví dụ, ký tự $vals = "INSERT INTO `Log` [`Trip`, `Odometer`, `Gallons_Pumped`, `Price_Gallon`]
VALUES ['$trip', '$odom', '$gals', '$ppg']";
9. Bạn nên sử dụng các câu lệnh đã chuẩn bị, như thế này:$vals = "INSERT INTO `Log` [`Trip`, `Odometer`, `Gallons_Pumped`, `Price_Gallon`]
VALUES [?, ?, ?, ?]";
if[$stmt = mysqli_prepare[$conn, $vals]] {
// adjust "sddd" below to match your data types; see //php.net/manual/en/mysqli-stmt.bind-param.php
mysqli_stmt_bind_param[$stmt, "sddd", $trip, $odom, $gals, $ppg];
$retval = mysqli_stmt_execute[$stmt];
} else {
echo "Error: " . $vals . "
" . mysqli_error[$conn];
}
mysqli_close[$conn];
❮ Php mysqli tham khảo
Ví dụ - Phong cách định hướng đối tượng
Trả về mô tả lỗi cuối cùng cho cuộc gọi chức năng gần đây nhất, nếu có: