Как вставить смешанную строку, используя mysqli_bind_param подготовленные операторы

некоторое время искал ответ, но, похоже, ничего не нашел.

Я ищу способ использовать mysqli_bind_param для вставки строки в таблицу, где параметр (?) Является частью большей строки.
Это мой код:

$query = "INSERT INTO CDBusers_activity (order_ID, activity_text_desc) VALUES (?, 'Price edited from ? to ?')";
$stmt = mysqli_prepare($DB_conn, $query);
mysqli_bind_param($stmt, "sss", $orderID, $product_editPrice_was, $product_editPrice_now);
mysqli_stmt_execute($stmt);

Я ищу способ добавить «$ product_editPrice_was» и «$ product_editPrice_now» в строку.

Я мог бы создать строку:

$text = "Price edited from $product_editPrice_was to $product_editPrice_now"

а затем связать это, но мне интересно, если есть более простой способ? Например:

$query = "INSERT INTO CDBusers_activity (order_ID, activity_text_desc) VALUES (?, 'Price edited from ' ? ' to ' ?)";

Заранее спасибо.

1

Решение

На ваш основной вопрос — нет, вы не можете заменить часть вставленного значения заполнителем.

Решение:

$query = "INSERT INTO CDBusers_activity (order_ID, activity_text_desc) VALUES (?, ?)";
$stmt = mysqli_prepare($DB_conn, $query);
$text = "Price edited from $product_editPrice_was to $product_editPrice_now";
mysqli_bind_param($stmt, "ss", $orderID, $text);
mysqli_stmt_execute($stmt);

Другое решение состоит в том, чтобы создать для различных полей, таких как price_before, price_after,

Но если вы не можете сделать это, вы можете попробовать использовать MySQL CONCAT() и заполнители, например, но я не уверен, что это работает:

INSERT INTO CDBusers_activity (order_ID, activity_text_desc) VALUES (?, CONCAT('Price edited from ', ?, ' to ', ?)
1

Другие решения

но мне интересно, есть ли более простой способ?

Это интересный вопрос. В пути.

$text = "Price edited from $product_editPrice_was to $product_editPrice_now";

очевидно, самый простой способ создать текстовую строку. Хотя эту текстовую строку можно связать с запросом обычным способом с заполнителем. Кроме того, ваш SQL и данные будут отделены друг от друга, что поможет вам лучше организовать ваш код.

Поэтому я думаю, что есть вещи, которые вы не должны упрощать. Потому что такая попытка, скорее всего, усложнит ситуацию.

1

По вопросам рекламы [email protected]