我在我的PHP应用程序中使用PDO.它连接到同一服务器上的MySQL服务器:
$db = new PDO(mysql:host=localhost;dbname=test, $username, $password);
Run Code Online (Sandbox Code Playgroud)
我创建了两个具有相同输出的页面(只是普通html中的一些虚拟数据),其中一个包含创建PDO的调用.如果我打开不使用连接的页面,响应速度会提高0.5到1秒.
我有一个关于在事务中测试查询的问题.我一直在使用MySQL事务很长一段时间,每次我这样做,我都会使用类似的东西:
$doCommit = true;
$error = "";
mysql_query("BEGIN");
/* repeat this part with the different queries in the transaction
this often involves updating of and inserting in multiple tables */
$query = "SELECT, UPDATE, INSERT, etc";
$result = mysql_query($query);
if(!$result){
$error .= mysql_error() . " in " . $query . "<BR>";
$doCommit = false;
}
/* end of repeating part */
if($doCommit){
mysql_query("COMMIT");
} else {
echo $error;
mysql_query("ROLLBACK");
}
Run Code Online (Sandbox Code Playgroud)
现在,我经常想要测试我的事务,所以我mysql_query("COMMIT");改为mysql_query("ROLLBACK");,但我可以想象这不是测试这种东西的好方法.将每个表复制到temp_table并更新并插入到这些表中并在之后删除它们(例如因为表可能非常大)通常是不可行的.当然,当代码投入生产时,相关的错误处理(而不仅仅是打印错误)就会到位.
做这样的事情最好的方法是什么?
有一个变量$posts,它给出了一个包含许多值的数组.
foreach() 用于输出:
foreach($posts as $post) {
...
}
Run Code Online (Sandbox Code Playgroud)
如何只显示五个第一个值$posts?
就像,如果我们有100个值,它应该只给五个.
谢谢.
标题几乎概括了我的问题。我只想了解如何禁用对我的phpmyadmin的远程登录。我宁愿只能从本地主机登录phpmyadmin。
我正在尝试从 PHP 发送带有附件的加密电子邮件,但是,我的电子邮件仅在电子邮件客户端(在本例中为 MS Outlook)中显示为纯文本。这是我用来发送电子邮件的代码:
$semi_rand = md5(time());
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
$fileatt = "\path\to\attachment";
$headers = array();
$headers['From'] = $email_from;
$headers['Subject'] = $email_subject;
$headers['MIME-Version'] = "1.0";
$headers['Content-Type'] = "multipart/mixed; boundary=\"{$mime_boundary}\"";
$file = fopen($fileatt,'rb');
$data = fread($file,filesize($fileatt));
$data = chunk_split(base64_encode($data));
fclose($file);
//message part
$email_message = "This is a multi-part message in MIME format.\n\n" .
"--{$mime_boundary}\n" .
"Content-Type:text/html; charset=\"UTF-8\"\n" .
"Content-Transfer-Encoding: 7bit\n\n
Please find the file attached\n\n";
//file part
$email_message .= "--{$mime_boundary}\n" .
"Content-Type: {$fileatt_type};\n" .
" name=\"{$fileatt_name}\"\n" .
"Content-Transfer-Encoding: base64\n\n" . …Run Code Online (Sandbox Code Playgroud) 我正在研究一个MVC应用程序,其中使用所有实际模型必须扩展的抽象基类来实现Model.在每个模型中都有一些关于该模型的信息,目前实现为数组,让我们调用它protected static $info.因此,每个模型都有不同的$info数组.现在,基类有很多函数使用来自该数组的数据,并且目前这些函数中的每一个都以类似下面的示例save()函数开头.
abstract class BaseModel {
function save(){
$className = get_called_class();
$modelInfo = $className::$info;
/* lots of other stuff */
}
}
class User extends BaseModel {
protected static $info = array("tableName" => "tblUsers", etc...)
}
Run Code Online (Sandbox Code Playgroud)
在我的理解中,这可以通过使BaseModel成为特征而不是构造函数来解决,因为当traits定义static属性时,每个继承类都有自己的值.我会将$info模型的实现中的数组复制到特征中,可能在构造函数中,这样我就可以self::info['tableName']在BaseModel的所有函数中使用...
这是个好主意吗?
php ×4
count ×1
debugging ×1
foreach ×1
mysql ×1
pdo ×1
phpmyadmin ×1
smime ×1
traits ×1
transactions ×1