Позвольте мне объяснить историю, поэтому я начинаю веб-сайт, на котором пользователи могут присоединяться и отслеживать материалы с веб-сайта. Я хочу создать обратную ссылку, которая вставляет «выплату» в таблицу с кодом блокировки, но когда я пытаюсь это проверить, это дает мне эту ошибку
Execute failed: (2031) No data supplied for parameters in prepared statement
Итак, вот код, который я использовал …
<?php
define("MYSQL_HOST", "localhost");
define("MYSQL_PORT", "3306");
define("MYSQL_DB", "dbuser");
define("MYSQL_TABLE", "userpayout");
define("MYSQL_USER", "user");
define("MYSQL_PASS", "dbpassweord");
$mysqli = new mysqli(MYSQL_HOST, MYSQL_USER, MYSQL_PASS, MYSQL_DB);
if ($mysqli->connect_errno)
{
echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " .
$mysqli->connect_error;
}
$aff_sub1 = $_GET['aff_sub'];
$aff_sub2 = $_GET['aff_sub'];
$aff_sub3 = $_GET['aff_sub'];
$aff_sub4 = $_GET['aff_sub'];
$aff_sub5 = $_GET['aff_sub'];
$aff_sub6 = $_GET['aff_sub'];
$payout = $_GET['payout'];if (!($stmt = $mysqli->prepare("UPDATE ".MYSQL_DB.".".MYSQL_TABLE." SET
payout=payout+(?) WHERE aff_sub1=(?)")))
{
echo "Prepare failed: (" . $mysqli->errno . ") " . $mysqli->error;
}
$stmt->bind_param('ds', $aff_sub1, $aff_sub2, $aff_sub3, $aff_sub4, $aff_sub5, $aff_sub5, $payout);
if (!$stmt->execute())
{
echo "Execute failed: (" . $stmt->errno . ") " . $stmt->error;
}
else
{
printf("%d Row updated, added $".$payout." to locker ".$aff_sub1." .\n",
mysqli_stmt_affected_rows($stmt));
}
?>
Поэтому я пытаюсь отследить несколько aff_subs, которые являются шкафчиками, от которых они получают выплаты. Я хочу вставить его в строку с теми же affsubs.
Проверьте переменные $aff_sub1
, $aff_sub2
, payout
и т. д. перед звонком bind_param
чтобы убедиться, что они установлены.
Также убедитесь, что обратная ссылка вызывается через метод GET, так как вы извлекаете переменные из $_GET
,
Других решений пока нет …