无法获取简单的php表单来添加/更新mysql表

vecaoik1  于 2021-06-21  发布在  Mysql
关注(0)|答案(2)|浏览(288)

我有一个有三列的mysql表;用户、产品、地址。我试图让我的表单要么向表中添加一行新数据,要么更新一行已有的数据。我的更新条件是,如果用户和产品都已经存在,只需更改地址。但是如果两者都不存在(用户和产品),或者只是用户,那么添加新的用户、产品和地址信息。
表单使用客户id、产品的下拉框和新地址的文本框,但是我的sql更新命令似乎没有通过页面,我找不到错误。。。以下是我对mysql代码的尝试:
已编辑测试代码-仍不工作

mysqli_select_db("wp_newaddress", $con);

if(isset($_POST['submit'])) {
$id = $_POST['$userid'];
$product = $_POST['sku'];
$address = $_POST['address'];

$sql = "UPDATE wp_newaddress SET address='address' WHERE user='$userid' AND product='sku'";

echo "<p><h5>Change address:</h5>";

$loop = new WP_Query( $args );
echo '<br><select name="sku">';
    echo '<option>-- Select product--</option>';
while ( $loop->have_posts() ) : $loop->the_post();
  global $product;
    echo '<option value=' . $product->get_sku() . '>' . $product->get_sku() . ' </option>';
  endwhile;
echo '</select>';
echo '<br><input type="text" value="Insert new address here" id="address" size="40" />';
echo '<br><button type="submit" name="submit">Change address</button>';
$retval = mysqli_query( $sql, $con );
if(! $retval )
{
  die('Could not update data: ' . mysqli_error());
}
echo "Updated address successfully\n";
kkih6yb8

kkih6yb81#

$sql = mysqli_query("UPDATE wp_newaddress SET address='address' WHERE user='$userid' AND product='sku'");

此代码执行查询。
对于成功的选择、显示、描述或解释查询,它将返回mysqli\u结果对象。对于其他成功的查询,它将返回true。失败时为false
$sql包含上述可能的返回值。
因此,当您第二次尝试在行中执行查询时

$retval = mysqli_query( $sql, $con );

它不是执行sql语句,而是执行返回值。
例如:如果返回第一个 mysqli_query() 是假的,那么你的第二个 mysqli_query('FALSE', $con) 所以要纠正它,你需要

$sql = "UPDATE wp_newaddress SET address='$address' WHERE user='$userid' AND product='sku'";
2cmtqfgy

2cmtqfgy2#

的用法 mysqli_query : mysqli_query(connection,query,resultmode); . 请参阅文档
您必须在中切换$sql和$con $retval = mysqli_query( $sql, $con ); 在我看来,还必须将$sql定义为字符串。

$sql = "UPDATE wp_newaddress SET address='address' WHERE user='$userid' AND product='sku'";

相关问题