некоторое время искал ответ, но, похоже, ничего не нашел.
Я ищу способ использовать 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 ' ?)";
Заранее спасибо.
На ваш основной вопрос — нет, вы не можете заменить часть вставленного значения заполнителем.
Решение:
$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 ', ?)
но мне интересно, есть ли более простой способ?
Это интересный вопрос. В пути.
$text = "Price edited from $product_editPrice_was to $product_editPrice_now";
очевидно, самый простой способ создать текстовую строку. Хотя эту текстовую строку можно связать с запросом обычным способом с заполнителем. Кроме того, ваш SQL и данные будут отделены друг от друга, что поможет вам лучше организовать ваш код.
Поэтому я думаю, что есть вещи, которые вы не должны упрощать. Потому что такая попытка, скорее всего, усложнит ситуацию.