Cách hợp lý để kết hợp văn bản và một biến trong PHP bên trong mysql_query là gì? Đây là nỗ lực của tôi:
page.'$pageID'
Tôi muốn nó xuất hiện page3
.
Dưới đây là tất cả các mã [đơn giản hóa để tập trung vào mysql_query]:
if [$_POST['pageProgress']] {
$pageProgress = $_POST['pageProgress'];
$pageID = 3;
$userID = 1;
$updateUserProgress = mysql_query["UPDATE test SET page.'$pageID'='$pageProgress' WHERE userID='$userID'"] or die[mysql_error[]];
}
Tất cả các mã hoạt động hoàn hảo nếu tôi chỉ cần thay thế
if [$_POST['pageProgress']] {
$pageProgress = $_POST['pageProgress'];
$pageID = 3;
$userID = 1;
$updateUserProgress = mysql_query["UPDATE test SET page.'$pageID'='$pageProgress' WHERE userID='$userID'"] or die[mysql_error[]];
}
0 bằng page3
.
Đã hỏi ngày 22 tháng 11 năm 2011 lúc 19:44Nov 22, 2011 at 19:44
Mark Rummelmark RummelMark Rummel
2.88010 Huy hiệu vàng36 Huy hiệu bạc52 Huy hiệu Đồng10 gold badges36 silver badges52 bronze badges
1
Bạn không cần
if [$_POST['pageProgress']] {
$pageProgress = $_POST['pageProgress'];
$pageID = 3;
$userID = 1;
$updateUserProgress = mysql_query["UPDATE test SET page.'$pageID'='$pageProgress' WHERE userID='$userID'"] or die[mysql_error[]];
}
2. Php phân tích cú pháp được trích dẫn gấp đôi [if [$_POST['pageProgress']] {
$pageProgress = $_POST['pageProgress'];
$pageID = 3;
$userID = 1;
$updateUserProgress = mysql_query["UPDATE test SET page.'$pageID'='$pageProgress' WHERE userID='$userID'"] or die[mysql_error[]];
}
3] và thay thế các biến bằng các giá trị của chúng. Như vậy:$pageID = 3;
echo "UPDATE test SET page$pageID = '$pageProgress' WHERE userID = '$userID'";
//codepad.viper-7.com/uIdqqH
Đã trả lời ngày 22 tháng 11 năm 2011 lúc 19:52Nov 22, 2011 at 19:52
Alex Turpinalex TurpinAlex Turpin
45,9K23 Huy hiệu vàng112 Huy hiệu bạc145 Huy hiệu đồng23 gold badges112 silver badges145 bronze badges
2
Vấn đề là của bạn. '$ PageId' nằm trong chuỗi được trích xuất kép; Bạn không liên kết điều này ở phía MySQL; Nó được phân tích cú pháp từ lâu trước khi MySQL nhìn thấy nó.
Có thể là bạn đã cố gắng thoát khỏi tên trường cho MySQL, trong trường hợp đó, bạn sử dụng Backticks.
Try:
'UPDATE test SET `page'.$pageID.'`=\''.$pageProgress.'\' WHERE...'
Hoặc, dễ dàng hơn nhiều trên mắt:
"UPDATE test SET `page{$pageID}`='{$pageProgress}' WHERE..."
Đã trả lời ngày 22 tháng 11 năm 2011 lúc 19:50Nov 22, 2011 at 19:50
5
if [$_POST['pageProgress']] {
$pageProgress = $_POST['pageProgress'];
$pageID = 3;
$userID = 1;
$updateUserProgress = mysql_query["UPDATE test SET page.'$pageID'='$pageProgress' WHERE userID='$userID'"] or die[mysql_error[]];
}
4Các dấu chấm không đúng vị trí để làm điều đó với các chức năng chuỗi của PHP.
Đã trả lời ngày 22 tháng 11 năm 2011 lúc 19:46Nov 22, 2011 at 19:46
TelsaboiltelsaboilTelsaBoil
5741 Huy hiệu vàng6 Huy hiệu bạc14 Huy hiệu đồng1 gold badge6 silver badges14 bronze badges
0
Một cái gì đó như thế này.
mysql_query["UPDATE test SET page" . $pageID . " = '" . $pageProgress . "' WHERE userID = " . $userID]
Đã trả lời ngày 22 tháng 11 năm 2011 lúc 19:48Nov 22, 2011 at 19:48
1
Thử
mysql_query['UPDATE test SET page'.$pageID.'='.$pageProgress.' WHERE userID='.$userID]
Đã trả lời ngày 22 tháng 11 năm 2011 lúc 19:46Nov 22, 2011 at 19:46
TelsaboiltelsaboilPateman
5741 Huy hiệu vàng6 Huy hiệu bạc14 Huy hiệu đồng3 gold badges28 silver badges40 bronze badges
1
$updateUserProgress = mysql_query["UPDATE test SET page".$pageID." = '".$pageProgress."' WHERE userID='".$userID."'"] or die[mysql_error[]];
Một cái gì đó như thế này.
Đã trả lời ngày 22 tháng 11 năm 2011 lúc 19:46Nov 22, 2011 at 19:46
TelsaboiltelsaboilLuceos
5741 Huy hiệu vàng6 Huy hiệu bạc14 Huy hiệu đồng1 gold badge33 silver badges63 bronze badges
2
Một cái gì đó như thế này.
if [$_POST['pageProgress']] {
$pageProgress = mysql_real_escape_string[$_POST['pageProgress']];
$pageID = 3;
$userID = 1;
$updateUserProgress = mysql_query["UPDATE test SET page$pageID='$pageProgress' WHERE userID='$userID'"] or die[mysql_error[]];
}
Đã trả lời ngày 22 tháng 11 năm 2011 lúc 19:48Nov 22, 2011 at 19:53
AR.AR.AR.
Thử1 gold badge11 silver badges14 bronze badges
1