【问题标题】:MySQLi_Connect cannot update field for multiple rows of sql table at same timeMySQLi_Connect 无法同时更新多行 sql 表的字段
【发布时间】:2016-04-09 21:35:40
【问题描述】:

在我的 php 代码中,我正在尝试更新 sql 数据库表中具有 2 个不同字段/列的特定值的所有行。当我运行代码时,没有对 sql 表进行更新。

假设我有一个名为“databasename”的数据库,其中包含一个名为“Pets”的表,其中包含以下列:“Cat”(varchar)、“Dog”(varchar)和“Favorite”(布尔值)。我想在最喜欢的列中将 Cat = Sylvester & Dog = Clifford 的所有行标记为 1。

这是我的代码:

<?php 
$connect = mysqli_connect("localhost","root","","databasename");
$dog='Clifford';
$cat='Sylvester';
$query="SET sql_safe_updates=0";
$query.="UPDATE Pets SET Favorite = 1 WHERE Dog= $dog AND Cat = $cat";
  mysqli_multi_query($connect,$query);
?>

【问题讨论】:

    标签: php sql mysqli mysqli-multi-query


    【解决方案1】:

    如果你打印出查询字符串,你会看到它是:

    $query="SET sql_safe_updates=0UPDATE Pets SET Favorite = 1 WHERE Dog= $dog AND Cat = $cat";
    

    我并不惊讶这不起作用。尝试使用update 开始查询;没有理由使用 sql 安全更新模式。

    【讨论】:

    • 感谢您的帮助!我也试过这个,但它不起作用: $query="UPDATE Pets SET Favorite = 1 WHERE Dog= $dog AND Cat = $cat"; mysqli_query($connect,$query);
    • @user3882316 。 . .您正在使用“mysqli”,因此您应该在查询中使用参数,而不是让您的查询受到 SQL 注入(并防止引擎有效地缓存执行计划)。
    • 谢谢!您有任何示例或链接,以便我可以了解有关如何执行此操作的更多信息吗?
    • @user3882316 访问php.net/manual/en/mysqli.error.php 并将其应用于您的查询。你会看到你哪里出错了。想想“字符串文字”.
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-03
    • 2015-07-14
    • 2018-05-24
    • 1970-01-01
    相关资源
    最近更新 更多