一直试图获取SCOPE_IDENTITY()(最后一个插入到DB中的ID)并将其作为变量存储在我的PHP函数中。
这是我目前拥有的:
// Confirm booking (update database) function
public function insert_userPost($conn)
{
// SQL INSERT command
$sql = ("
INSERT INTO userPost (content, submitted, emotion)
VALUES ('$this->post', 'NOW()', '$this->emotion');
");
if ($conn->query($sql) === TRUE)
{
//echo "success";
$sql = ("SELECT SCOPE_IDENTITY() as Id");
$result = $conn->query($sql);
echo $result;
//header('Location: feed.php?filter=all&page=1');
}
else
{
echo "Error: " . $sql . "<br>" . $conn->error;
}
}
我做错了什么?
编辑:
另外…在构造中,我试图在$ this-> post中传递ID($ this-> Id),但它返回0。我可以看到这是由于我只设置了$查询通过后this->
Id,因此返回0,但我不确定如何继续。有什么建议?
// Construct
public function __construct($content, $emotion, $conn)
{
$this->content = $content;
$this->emotion = $emotion;
$this->post =
"<div id=\'post\'>
<div id=\'postContent\'>
<p><b>I\'m $this->emotion because</b> $this->Id $this->content<span class=\'emot\'id=\'$this->emotion\'></span></p>
</div>
<div id=\'postInfo\'>
<span class=\'postRelate\' title=\'Click to relate +1\'><p><b>relate</b> (0)</p></span>
<span class=\'postSubmitted\'><p>submitted X minutes ago</p></span>
</div>
</div>";
}
// Confirm booking (update database) function
public function insert_userPost($conn)
{
// SQL INSERT command
$sql = ("INSERT INTO userPost (content, submitted, emotion)
VALUES ('$this->post', NOW(), '$this->emotion')");
if ($conn->query($sql) === TRUE)
{
//echo "success";
echo $this->Id = $conn->insert_id;
//header('Location: feed.php?filter=all&page=1');
}
else
{
echo "Error: " . $sql . "<br>" . $conn->error;
}
}
首先,您的问题被标记为mysql
,但它SCOPE_IDENTITY()
是一个SQL Server函数。就是说,您的代码包含$ conn->
error
,因此我假设您使用的是MySQLi扩展名的MySQL。
与SQLServer等效的MySQLSCOPE_IDENTITY()
是LAST_INSERT_ID()。但是调用它需要一个额外的查询,这既麻烦又 慢。
相反,建议您为此使用内置的MySQLi功能,即连接实例的$insert_id属性:
$id = $conn->insert_id;
大多数SQL库都为此提供了内置功能。如果您使用PDO作为数据库抽象层,则可以类似地使用PDO ::
lastInsertId()
:
$id = $pdo->lastInsertId();
这对于SQL Server和MySQL(及其他)均适用。
我正在尝试用PHP接收UDP多播流。receive命令从不获取任何内容,而是一直等待。 我可以使用VLC播放器观看流,以便在我的机器上访问流。非常感谢有关如何使用PHP执行此操作的任何帮助。 这是我的密码。 //创建新套接字 //我不确定这个命令。我想我必须设置此选项才能开始接收数据包。 //接收数据
让我们从一段简单的代码开始,用格式化货币: 打印:。 如果你想格式化货币,这是可以的。 但是我想做的是为给定的货币ISO 4217代码(例如JPY)获得货币符号(例如¥)。 我的第一个猜测是尝试使用: 但这为构造函数(en_US)中给定的区域设置提供了货币符号,在我的例子中是$。 有没有办法通过PHP中的货币ISO 4217代码获得货币符号?
问题内容: 如何使用PHP从JSON对象获取数据? 这是我拥有的PHP代码: 问题答案: foreach($json as $i){ echo $i[‘name’]; }
问题内容: 您对我的问题有什么建议吗?我需要同时使用get和post。得到,因为我需要输出用户输入的内容。并发布,因为我需要访问与该输入相关的mysql数据库。看起来像这样: 这将根据用户将检查的内容输出mysql的内容: 这两个结合起来的形式动作将如下所示: 当我这样做时,我确实会收到很多未定义的错误。您可以建议我做些什么,以获取用户输入的值以及mysql数据。 问题答案: 执行HTTP Req
问题内容: 我将以下内容作为POST提交到php页面: 这是请求(POST请求)的主体。 在php中,我该怎么做才能提取该值? 不是解决方案,不能正常工作。 问题答案: 要访问POST或PUT请求(或任何其他HTTP方法)的实体主体,请执行以下操作: 另外,该常量是的已经开放的流,因此您可以选择执行以下操作: php:// input 是一个只读流,允许您从请求正文中读取原始数据。对于POST请求
问题内容: 我在php(string)中有一个div,我想获取内容。 例如: 而且我要 样式在变化,我只知道div ID。 更新 这是我的代码,与turbod源相同,结果也相同。 所以这是原始的html 在此代码之后,我得到以下信息:链接 问题答案: 使用php DomDocument类。http://www.php.net/manual/zh/class.domdocument.php