嗨,我有一个看起来像这样的表:
| vend | prod_name | price | qty |
|----------|---------------|-----------|---------|
| vend1 | red wine | 15.00 | 3 |
|----------|---------------|-----------|---------|
| vend1 | nike tg. 42 | 70.00 | 10 |
|----------|---------------|-----------|---------|
以下代码的问题是,当我为红酒更新数量时,一切正常,但是当我用耐克tg做同样的事情时。 42更新不起作用。我认为问题是无法删除的点。数据库的默认字符集为latin1,排序规则为latin1_general_cs。
$connection = mysqli_connect($host, $DBuser, $Dbpass, $databaseName);
$query = 'update prodotti set qty = ? where vend = ? and prod_name = ?';
$st = mysqli_prepare($connection, $query);
mysqli_stmt_bind_param($st, 'iss', $value, $_SESSION['NomeUtente'], $key);
mysqli_stmt_execute($st);
mysqli_stmt_close($st);
请注意,我已经打印了$ key变量,它就是耐克tg。 42
答案 0 :(得分:0)
使用这样的查询
update prodotti set qty = '11' where vend = 'vend1' and prod_name = 'nike tg. 42';
我只想显示您在单引号中获得的值,我上面给出的查询对我来说效果很好,我认为mysqli_stmt_bind_param()
会导致错误bcos,您无法取得单引号并尝试直接查询并获得本身的价值,并尝试返回错误