我做了一个从更多的表中删除的函数,但它不起作用?
//the 'id' is came through URL so why it does not work
$id = $_GET['id'];
del($id, "DELETE FROM `companies` WHERE id=$id");
function del($id, $query){
try {
$con->query($query);
mysqli_commit($con);
echo 'Deleted
当使用php运行多查询时,是否有查询的最大数量?
$conn = new mysqli($db_hostname, $db_username, $db_password);
if (mysqli_connect_errno()) {
exit('Connect failed: '. mysqli_connect_error());
}
$sql = "CREATE TABLE IF NOT EXISTS......";
$sql .= "CREATE TABLE IF NOT EXISTS......
如何选择两个表并通过id连接它们,以便通过事务进行更新?我试着使用prep stmts,但是id不能作为一个参数...事务能做到这一点吗?
// submit
if (isset($_POST['submit']))
{
// Edit ID
if (isset($_GET['edit']))
$ID = $_GET['edit'];
// form input
if (isset($_POST['title'], $_POST['director'], $_POST[
我正在为用PHP编写的Web应用程序开发一个更新系统。在更新过程中,我可能需要执行一堆MySQL脚本。
运行脚本的基本过程是:
搜索Mysql脚本
开始交易
使用mysqli_multi_query执行每个脚本,因为脚本可以包含多个查询
如果一切顺利,提交事务,否则回滚。
我的代码看起来像是:
$link = mysqli_connect(...);
mysqli_autocommit($link, false);
// open dir and search for scripts in file.
// $file is an array with all th
我有一个名为$db的数据库列在mysqli下。这个数据库包含两个表,我在下面将它们分别列为table和table2 (仅用于本例)。表2的行需要表中的id。这很好,但是将列添加到table2中可能会出现问题,因此需要回滚例程。然而,它似乎不起作用。
我从关闭自动提交开始。然后,我尝试放入rollback命令,即使我使用die命令发出失败信号。就我而言,事务可能会在中期操作中被遗忘,数据库应该仍然稳定。因此,我不确定这里发生了什么,除非数据库完全忽略了我试图关闭自动提交的事实。
下面是我的代码的基本结构:
function problem($str)
{
global $db;
我试图根据变量值动态地设置一些sql。
所以如果我有
$somevariable = "somevalue" I set some $sql and $a1 = mysqli_query($con, $sql1)
$somevariable2 = "somevalue2" I set some $sql2 and $a2 = mysqli_query($con, $sql2)
以此类推。
现在我想运行这些查询,如果其中任何查询是假的,我想回滚
所以这就是我所做的。
mysqli_autocommit($con, FALSE);
if ($a1 and $a2 a
这是我通常在数据库中存储标签的操作:
foreach ($tags as $tag)
{
if (mysqli_query($link, "INSERT INTO tag (name) VALUES ('$tag')") === false)
{
$queries_ok[] = false; # I'm using this because I have autocommit set to false, i.e. mysqli_autocommit($link, FALSE);
}