我必须构建一个包含大约300个节点的树.树没有深度限制.所以它可以有3或15个级别.每个节点可以拥有无限数量的孩子.
优先级是尽可能快地获得完整的树/子树,但我还需要添加节点或移动节点,但有时不需要.
我想知道在数据库中存储树的最佳方法,以及在php中检索数据的最佳方法(如果可能的话).
我有一个运行大约2个小时的PHP脚本.这是一个cron工作.cron作业每4小时运行一次.
在脚本的末尾,我显示一些内存值.
The memory_get_usage() result is 881568 Bytes (0.840766906738M)
The memory_get_peak_usage() result is 1340304 Bytes (1.27821350098M)
The memory_get_usage(true) result is 1572864 Bytes (1.5M)
The memory_get_peak_usage(true) result is 1835008 Bytes (1.75M)
Run Code Online (Sandbox Code Playgroud)
php.ini中的memory_limit是128M并且它不起作用.我把它提升到256M,现在它可以工作了.
但由于脚本的内存峰值小于2M ....
那么memory_limit参数如何工作?
它是脚本使用的总内存吗?如果是这样,我该如何计算呢?
它是脚本的内存峰值吗?如果是的话,我算得对吗?
我正在使用php 5.3.16.
编辑
我没有任何错误消息.当限制为128M时脚本执行,但永远不会完成.
编译PHP时,--enable-inline-optimization选项究竟是什么?
为什么人们会使用它?
有哪些优点和缺点?
我想在我的网站上创建一个CSV文件导入程序.我希望用户选择分隔符.
问题是当表单提交时,分隔符字段存储为'\ t',例如,因此当我解析文件时,我搜索字符串'\ t'而不是真正的TAB.它对每个特殊字符都有同样的作用,比如\ r,\n等...
我想知道用于将这些字符转换为真实表示的方式或函数,而不使用如下数组:
我正在尝试使用此脚本发送电子邮件
$to = 'example@example.com';
$headers['To'] = $to;
$headers['From'] = '"My Name" <examlpe@example.com>';
$headers['Return-Path'] = 'examlpe@example.com';
$headers['Subject'] = 'Subject';
$auth = array('host' => MAIL_HOST, 'auth' => true, 'username' => MAIL_USER, 'password' => MAIL_PASS);
$smtp = Mail::factory('smtp', $auth);
$mail = $smtp->send($to, $headers, $message);
if (PEAR::isError($mail))
echo('<p>PEAR mail: '.$mail->getMessage().'</p>');
else
echo('<p>PEAR mail: Message successfully sent!</p>');
Run Code Online (Sandbox Code Playgroud)
但我收到以下消息:
Failed to set sender: "My Name" <example@example.com> [SMTP: Invalid response code received from server (code: 501, response: <"My Name" <example@example.com>>: "@" or "." expected after ""My Name"")] …
Run Code Online (Sandbox Code Playgroud) 我想根据 SELECT sql 查询更新多行。
我想在 SQL Shell 中完成所有操作!
这是我的选择:
SELECT @myid := id, @mytitle := title
FROM event
WHERE pid>0 GROUP BY title
ORDER BY start;
Run Code Online (Sandbox Code Playgroud)
然后,我想用这个伪代码做一个更新:
foreach($mytitle as $t)
BEGIN
UPDATE event
SET pid=$myid
WHERE title=$t;
END
Run Code Online (Sandbox Code Playgroud)
但我不知道如何在 SQL 中进行循环。
也许有一种方法可以在单个 sql 查询中实现?
我不想要任何 PHP !!!只有 SQL 外壳代码!!!
我有一个英文和法文网站.
因此,在我的数据库中,我的表中包含名为"name_english"和"name_french"的列以及其他一些数字列.
我想创建2个视图,或类似的东西,它将包含"name"列和我表的所有其他列.
视图"table_english"将列"name_english"作为"name",视图"table_french"将列"name_french"作为"name".
这对于选择的视图工作正常,但我还想在将更新表的视图上进行一些插入/更新/删除.
例:
table:
id | name_english | name_french | int1 | int2 | int3
table_english (a view):
id | name | int1 | int2 | int3 (name here is name_english)
table_french (a view):
id | name | int1 | int2 | int3 (name here is name_french)
Run Code Online (Sandbox Code Playgroud)
然后我想做一些像这样的查询:
INSERT INTO table_english(id, name, int1, int2, int3) VALUES (1, 'name', 12, 14, 2);
UPDATE table_english set name='new name' WHERE id=1;
Run Code Online (Sandbox Code Playgroud)
这些将在表格中插入/更新,并带有相应的字段.
所以最后,"表"的内容将是:
1 | 'new name' | DEFAULT VALUE …
Run Code Online (Sandbox Code Playgroud) php ×5
mysql ×3
alias ×1
compilation ×1
csv ×1
email ×1
hierarchical ×1
memory ×1
memory-limit ×1
optimization ×1
pear ×1
sendmail ×1
sql ×1
tree ×1
view ×1
views ×1