Hướng dẫn how do i concatenate a php variable in sql query? - làm cách nào để nối một biến php trong truy vấn sql?

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

Hướng dẫn how do i concatenate a php variable in sql query? - làm cách nào để nối một biến php trong truy vấn sql?

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'";

http://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());
    }
4

Cá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

Hướng dẫn how do i concatenate a php variable in sql query? - làm cách nào để nối một biến php trong truy vấn sql?

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

Làm cách nào để kết nối một biến trong một chuỗi trong PHP?

Bạn có thể sử dụng toán tử phân công nối. = Nếu bạn muốn tham gia các chuỗi và gán kết quả cho cùng một biến. Đó là một cách ngắn hơn để nối các đối số ở phía bên phải vào đối số ở phía bên trái.use the concatenating assignment operator . = if you want to join the strings and assign the result to the same variable. It is a shorter way of appending the argument on the right side to the argument on the left side.

Làm thế nào concatenate SQL trong PHP?

Áp dụng các chức năng ghép nối cho các truy vấn MySQL..
Chèn Truy vấn: Chèn vào giá trị (Field1) (Concat (String1, String2 ...)).
Cập nhật truy vấn: CẬP NHẬT SET Field1 = Concat (String1, String2 ...).
Chọn Truy vấn: Chọn Concat (String1, String2 ...) từ.

Làm thế nào để bạn kết hợp trong truy vấn SQL?

Hàm SQL Server Concat ()..
Thêm hai chuỗi lại với nhau: chọn Concat ('W3Schools', '.com') ;.
Thêm 3 chuỗi lại với nhau: Chọn Concat ('SQL', 'là', 'vui!') ;.
Thêm các chuỗi với nhau (tách từng chuỗi với một ký tự không gian): Chọn Concat ('SQL', '', 'là', '', 'vui vẻ!') ;.

Một cách hiệu quả để kết hợp hai biến trong PHP là gì?

Thuật ngữ concatenate trong PHP đề cập đến việc nối nhiều chuỗi vào một chuỗi;Nó cũng tham gia các biến cũng như các mảng.Trong PHP, sự kết hợp được thực hiện bằng cách sử dụng toán tử nối (".") Là một dấu chấm.using the concatenation operator (".") which is a dot.