gpt4 book ai didi

PHP MYSQL 将关联数组(记录)写入mysql

转载 作者:行者123 更新时间:2023-11-29 06:11:49 25 4
gpt4 key购买 nike

如果我有 mysql 表 foo,其中字段 a、b、c、d 具有多个记录,并且 a 是主键。记录 1 具有以下数据:a = 1、b = true、c = val1a、d = val2a。如果我想使用 php 访问数据,我会这样做:

$result = mysql_query("SELECT * FROM foo WHERE a = '1'");
$rec = mysql_fetch_array($result);

要更改 b 和 c,我会这样做:

mysql_query("INSERT INTO foo (b,c) VALUES (false,'newval') WHERE a = '1'");

有没有办法在不列出所有字段(a、b、c、d)的情况下写入整个记录?

我想做的是将整个 $rec 写回表 foo:

$rec['b'] = false;
$rec['c'] = 'newval';
mysql_query("INSERT INTO foo $rec");

我知道我可以执行 foreach 并构建整个插入,但是是否已经有一个 php 函数可以完成我想要完成的任务?

最佳答案

简单的答案 - 不。插入值时需要考虑很多事情,它们的类型是什么,它们是否被转义,它们是否需要引号引起来,等等。所以通常所有的值不能被相同地对待,只是添加到字符串中。最好使用像 MySQLi 这样的扩展名,不通过连接字符串来构建查询。正如您所猜测的,一个简单的函数可以使用循环完成您想要的操作,但我不建议这样做。

另外 - 你误会了一些事情:

mysql_query("INSERT INTO foo (b,c) VALUES (false,'newval') WHERE a = '1'");

是无效语法。您需要使用UPDATE更改b和c。您也不需要 id 周围的引号,即 WHERE a = '1' 应该是 WHERE a = 1,它是一个整数值。

关于PHP MYSQL 将关联数组(记录)写入mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8760279/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com