我有一个有三列的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";
2条答案
按热度按时间kkih6yb81#
此代码执行查询。
对于成功的选择、显示、描述或解释查询,它将返回mysqli\u结果对象。对于其他成功的查询,它将返回true。失败时为false
$sql包含上述可能的返回值。
因此,当您第二次尝试在行中执行查询时
它不是执行sql语句,而是执行返回值。
例如:如果返回第一个
mysqli_query()
是假的,那么你的第二个mysqli_query('FALSE', $con)
所以要纠正它,你需要2cmtqfgy2#
的用法
mysqli_query
:mysqli_query(connection,query,resultmode);
. 请参阅文档您必须在中切换$sql和$con
$retval = mysqli_query( $sql, $con );
在我看来,还必须将$sql定义为字符串。