Điểm:0

mysql không chèn qua php cli

lá cờ ru
Ben

Tôi có một tập lệnh php đơn giản được chạy từ cli. Tôi đã thử nhiều biến thể khác nhau của mã mysql, nhưng bất chấp điều đó, dòng này không được chèn vào cơ sở dữ liệu mặc dù php cho biết đó là....

<?php
$link = mysql_connect('localhost', '***', '***');
if (!$link) {
    die('Could not connect: ' . mysql_error());
}
mysql_select_db('***');

mysql_query("INSERT INTO email_log (to, from, subject, headers, message, source) VALUES ('1','2','3','4','5','6')");
printf("Last inserted record has id %d\n", mysql_insert_id());
?>

thử nghiệm php.php trả về Bản ghi được chèn lần cuối có id 0 và các tập lệnh tương tự hoạt động hoàn hảo thông qua trình duyệt web.

Những điều tôi đã thử:

  • Tôi đã thay đổi quyền sở hữu tệp cho người dùng có thể ảnh hưởng đến nó.
  • 4-5 mã INSERT khác nhau
vautee avatar
lá cờ kr
Thêm một số thông tin khác cho câu hỏi của bạn. Ví dụ: đầu ra của MÔ TẢ email_log Đồng thời tìm nạp bất kỳ lỗi nào mysql_query có thể phát sinh, xem ví dụ #1 trong https://www.php.net/manual/en/function.mysql-query.php
lá cờ in
PHP5 đã [kết thúc vòng đời kể từ năm 2018](https://www.php.net/eol.php). Sử dụng phiên bản PHP được hỗ trợ.
Ben avatar
lá cờ ru
Ben
Này Gerald, cảm ơn vì câu trả lời của bạn... Tôi đã chuyển sang phiên bản 7.0 đã cài đặt khác. Vấn đề tương tự... Không có gì được báo cáo trong error.log. Đã lặp lại để gửi email dòng được chèn và gửi qua email ok... Xung đột giữa cli và mysql?? Tôi đã chạy các tập lệnh yest, nó nối để kết nối, Nó hoàn toàn bỏ qua phần chèn thực tế.
Điểm:0
lá cờ ua
  • Làm không phải sử dụng mysql_* giao diện trong PHP. Làm sử dụng mysqli_* thay thế. (Hoặc sử dụng PDO.)

  • Làm nhận được thông báo lỗi và hiển thị nó.

Điểm:0
lá cờ ru
Ben

WOW... thật bất thường... Không có thông báo lỗi, nhưng tôi đã tìm hiểu thêm và xử lý sự cố để tìm ra rằng tên hàng "TỚI", "TỪ" và "NGUỒN" nằm trong danh sách hạn chế/dành riêng của MYSQL.

https://dev.mysql.com/doc/refman/8.0/en/keywords.html

vidarlo avatar
lá cờ ar
Bài học? Đừng mong đợi mysql_query hoạt động. Xác minh rằng nó hoạt động bằng cách kiểm tra xem nó có trả về lỗi không. Giả định là mẹ của tất cả các shitups.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.