这是我的查询:
INSERT INTO table (value) VALUES (value) ON DUPLICATE KEY UPDATE value=value
Run Code Online (Sandbox Code Playgroud)
随着mysql_insert_id()我获得新的插入ID,但如何更新行的ID?
我试过mysql_insert_id()但是,对于更新的行,我得到0.
我正在尝试使用Zend Framework编写一个简单的安装脚本.它应该运行一些测试:
user数据库中是否存在调用的表如果任何步骤失败,控制器将负责将用户重定向到安装过程的正确步骤.
我用以下代码创建了一个模型:
public function verify () {
$db = $this->getDefaultAdapter(); //throws exception
if ($db == null) return self::NO_BATABASE;
$result = $db->describeTable('user'); //throws exception
if (empty($result)) return self::NO_USER;
$result = $db->fetchRow('SELECT * FROM user WHERE id = 1');
if ($result == null) return self::USER_EMPTY;
else return self::OK;
}
Run Code Online (Sandbox Code Playgroud)
但是,我高估了我使用过的功能.getDefaultAdapter()可能会返回null,但如果没有要连接的数据库,则会抛出异常.同样的情况发生describeTable(),抛出异常而不是返回一个空数组.
因此,我的问题是:如何检查数据库/表是否存在而不会出现异常或错误?
由于简单地使用Apache就足以运行许多Web应用程序,何时以及为什么人们除了Apache之外还使用Tomcat?
我试图用PHP解析纯文本文档但不知道如何正确地执行它.我想分隔每个单词,为它们分配一个ID并以JSON格式保存结果.
示范文本:
"Hello, how are you (today)"
Run Code Online (Sandbox Code Playgroud)
这就是我现在正在做的事情:
$document_array = explode(' ', $document_text);
json_encode($document_array);
Run Code Online (Sandbox Code Playgroud)
生成的JSON是
[["Hello,"],["how"],["are"],["you"],["(today)"]]
Run Code Online (Sandbox Code Playgroud)
我如何确保空间保持在原位,并且符号不包含在单词中......
[["Hello"],[", "],["how"],[" "],["are"],[" "],["you"],[" ("],["today"],[")"]]
Run Code Online (Sandbox Code Playgroud)
我确定需要一些正则表达式...但不知道应用什么样的模式来处理所有情况......有什么建议吗?
在我的PHP文件中,我使用此行从mySQL数据库中提取数据:
$query = "SET @rank=0; SELECT @rank:=@rank +1 as rank, Blah Blah...";
Run Code Online (Sandbox Code Playgroud)
如果我在phpMyAdmin的SQL窗口中检查SELECT语句(没有$ query =),它可以正常工作.
但是,如果我在PHP中使用它,那么我会收到错误.它不喜欢"SET @ rank = 0;" 位.有没有办法使用"SET @ rank = 0;" 当它在"$ query ="时?有解决方法吗?
其余代码是从数据库中提取数据的标准内容:
public function getmyData() {
$mysql = mysql_connect(connection stuff);
$query = "SELECT @rank:=@rank +1 as rank, formatted_school_name, blah blah";
$result = mysql_query($query);
$ret = array();
while ($row = mysql_fetch_object($result)) {
$tmp = new VOmyData1();
$tmp->stuff1 = $row-> stuff1;
$tmp->stuff2 = $row->stuff2;
$ret[] = $tmp;
}
mysql_free_result($result);
return $ret;
}
Run Code Online (Sandbox Code Playgroud)
更新:我正在尝试使用Amerb的使用多查询的建议.我像这样连接了查询:
$query = …Run Code Online (Sandbox Code Playgroud) 我正在学习OOP,并且非常混淆彼此使用类.
我共有3节课
//CMS System class
class cont_output extends cont_stacks
{
//all methods to render the output
}
//CMS System class
class process
{
//all process with system and db
}
// My own class to extends the system like plugin
class template_functions
{
//here I am using all template functions
//where some of used db query
}
Run Code Online (Sandbox Code Playgroud)
现在我想使用我自己的类template_functions和两个系统类.但很困惑如何使用它.请帮我理解这个.
编辑:我很抱歉,我忘了在不同的PHP文件中提到我自己的班级.
我有以下ActiveRecord调用:
@payment = account.business.payments.find(params[:id])
Run Code Online (Sandbox Code Playgroud)
其中通过关联搜索paymentid为params[:id].但是,这会抛出RecordNotFound异常.
我想打电话exists?来查看记录是否存在以避免抛出异常.做Payment.exists?(account.business.payments.find(params[:id]))不起作用.
我想只有搜索payments是belong_to说business,不这样做的所有款项Payment.exists?(:id => params[:id]).这样我就可以知道这是特定账户的业务付款.
我怎样才能做到这一点?
注意:
accounthas_one business和businesshas_many payments.
在asp.net mvc中,人们通过以下方式验证模型
using System;
using System.Data.Entity;
using System.ComponentModel.DataAnnotations;
namespace MvcMovie.Models {
public class Movie {
public int ID { get; set; }
[Required]
public string Title { get; set; }
[DataType(DataType.Date)]
public DateTime ReleaseDate { get; set; }
[Required]
public string Genre { get; set; }
[Range(1, 100)]
[DataType(DataType.Currency)]
public decimal Price { get; set; }
[StringLength(5)]
public string Rating { get; set; }
}
public class MovieDBContext : DbContext {
public DbSet<Movie> Movies { get; set; }
}
} …Run Code Online (Sandbox Code Playgroud) 我想用多个大型位图优化视差滚动视图.在我的Nexus 5上,一切都很顺利,Traceview转储如下所示:
doFrame()方法使用~18 ms完成.
但是,在使用我的Nexus 7或Android 6 Emulator(Genymotion)时,Traceview转储如下所示:
运行完全相同的应用程序时,nSyncAndDrawFrame方法现在需要大约300毫秒.
有趣的代码部分位于视差视图的onDraw()中:
for (int i = 0; i < parallaxConfigManager.getNumberOfLayers(); i++) {
Bitmap layer = parallaxConfigManager.getLayer(i);
float dx = (offset * parallaxConfigManager.getScrollSpeedFactorForLayer(i) * imageScaleFactor);
int offset = Math.round(-parallaxConfigManager.getBoardOffset(i) + dx);
srcRect.offsetTo(offset, 0);
int realWidth = getRealWidth(srcRect, layer.getWidth());
float scaleFactor = destRect.width() / (float) srcRect.width();
if (realWidth < srcRect.width()) {
destRect.left = (int) (scaleFactor * Math.max(0, -srcRect.left));
destRect.right = destRect.left + (int) (scaleFactor * realWidth);
}
destRect.bottom = Math.min(screenHeight, (int) (scaleFactor * layer.getHeight())); …Run Code Online (Sandbox Code Playgroud)