我一直在研究和阅读很多关于在PHP中使用单独的层来创建可维护和可读的代码.但是,我看到很多代码将实体和数据库访问放在一个类中.例如:
class User{
public $id;
public $username;
public $database;
function add(){
$database->query ....
}
}
Run Code Online (Sandbox Code Playgroud)
我觉得这很奇怪,因为在这里你将User类与数据库元素混合在一起,这使得维护起来更加困难.
我喜欢这样工作:
这样工作如下:
$database = new Database();
$database->openConnection();
$dataUser = new DataUser($db);
$user = new User(1,"myname");
$dataUser->saveUser($user);
Run Code Online (Sandbox Code Playgroud)
所以我想知道,我是以正确的方式工作还是第一种创建代码的更好方法?我发现可能很容易维护,因为你有一个单独的实体和一个单独的数据库类来处理数据库操作.
我有一个问题 session_start()。每次刷新/加载页面时,它都会创建一个新会话。
这是代码:
<?php
$bob = session_id();
echo "Session ID on load is ".$bob;
echo "<br>";
if($bob==""){
session_start();
$bob = session_id();
echo ' session ID currently is '.$bob;
}
// a bunch more stuff
Run Code Online (Sandbox Code Playgroud)
当我加载页面时,得到以下信息:
加载的会话ID为当前会话ID为ed320bc5e24c871c9db8ea30e6796c14(或其他版本)
如果刷新页面,我得到:
加载的会话ID为当前会话ID,当前为fbd69d01d511a7be382799dca7279a86(或变体)
会话ID在session_start()调用之前始终为空,并且始终是新的session_id()
它在所有浏览器中都执行此操作,并且我已检查以确保已打开Cookie。
会话保存路径为/tmp。我不确定确切的位置,但是通过我的根目录和所有其他目录,我找不到会话文件(假设它看起来像sess_fbd69d01d511a7be382799dca7279a86)。
因此,我认为保存路径上发生了一些事情,但是对于此事来说还太陌生,无法确定,服务器管理员对此毫无帮助。我在诊断问题时应该采取的下一步措施是什么?服务器正在运行5.3.22。
phpinfo在这里
谢谢你的帮助。
ps,您可以访问pcm.pcmxa.com亲自查看该问题。
我已经安装了PHPStorm 9的EAP,我试图增加我分配的堆大小而没有任何运气.
我在Mac OS X Yosemite上,我按照此页面上的说明操作:https: //www.jetbrains.com/phpstorm/help/tuning-phpstorm.html
应将文件/Applications/PhpStorm.app/Contents/bin/idea.vmoptions复制到
〜/库/首选项/ WebIdeXX/idea.vmoptions
任何建议将不胜感激!与PHPStorm 8完全相同的事情没有任何问题.
我有一个使用Ajax的Drupal Web应用程序; 有时,Ajax函数需要将字符串作为参数传递给Drupal函数
$.ajax({url: "index.php?q=get_value/"+encodeURIComponent(value),
Run Code Online (Sandbox Code Playgroud)
当值包含斜杠时,无法从Drupal函数中识别出
function get_value($value) {
print urldecode($value);
Run Code Online (Sandbox Code Playgroud)
例如,如果传递的字符串是ABC/123,则get_value仅打印ABC
如何解决这个问题传递斜杠并从PHP/Drupal获取整个字符串?
我正在使用json在postgresql中存储我的数据的文档版本.我想输出一个完整的对象树,包括孩子,孩子的孩子等以及所有属性.如果以后将任何属性添加到任何对象,我希望它们包含在后续的json中.
有没有办法输出整个内容而不必至少每个属性?即不是这样的:
json.(object_name, :id, :attr1, :attr2.... etc)
Run Code Online (Sandbox Code Playgroud) $('body').replaceWith('<%= escape_javascript(render(:partial => 'search_result2', :query => @result_query)) %>');
Run Code Online (Sandbox Code Playgroud)
我想在.html.hamlJavaScript中使用它,
$('body').replaceWith('<%= escape_javascript(render(:partial => 'search_result2', :query => @result_query)) %>');
Run Code Online (Sandbox Code Playgroud)
如何改变这一行
<%= escape_javascript(render(:partial => 'search_result2', :query => @result_query)) %>
Run Code Online (Sandbox Code Playgroud) 我有以下控制器:
class FirstController < ApplicationController
helper_method :contoller_method
private
def contoller_method
"text"
end
end
Run Code Online (Sandbox Code Playgroud)
如何contoller_method在另一个控制器的视图中使用?有最好的做法吗?
我试图通过论坛搜索,但我是一个新手,我变得更加困惑.
我试图从表单中提取输入并将其用作MySql查询中的变量.该表格的缩短版本是 -
echo "<form method=\"get\" action=\"\">";
echo "<tr><td>Leave:</td><td><input value=\"".$_SESSION['leave']."\" class=\"text\" autocomplete=\"off\" type=\"text\" value=\"\" /></td></tr>";
echo "</form>";
Run Code Online (Sandbox Code Playgroud)
然后我尝试使用代码将输入存储到变量中 -
$newVar = $_GET['leave'];
Run Code Online (Sandbox Code Playgroud)
但是我得到一个未定义的索引错误.
有人能帮忙吗?对不起,如果这是一个非常基本的问
我试图从表中获取数据并将其存储在名为"items"的数组中,然后使用索引访问它.我收到错误"Undefined offset:0".代码有什么问题?
$i=0;
while($row = mysql_fetch_array($sqlquery))
{
$name = $row['name'];
$items = array();
$items[$i] = $name;
$i= $i +1;
}
echo $items[0];
echo $items[1];
Run Code Online (Sandbox Code Playgroud)