在sql查询中放入一系列php变量?

在sql查询中放入一系列php变量?,php,sql,Php,Sql,我试图在sql查询中放入一系列php变量 按照我的理解,应该是这样的 Db_DbHelper::query('insert into shop_order_notifications(order_id, message, created_at) values ('.$order->id.','.$message.','.$emailPubDate.')' ); 然而,出于某种原因,它不起作用。所有变量和数据库列都在那里,当我用简单的字符串替换PHP变量进行

我试图在sql查询中放入一系列php变量

按照我的理解,应该是这样的

        Db_DbHelper::query('insert into shop_order_notifications(order_id, message, created_at)
        values ('.$order->id.','.$message.','.$emailPubDate.')' );
然而,出于某种原因,它不起作用。所有变量和数据库列都在那里,当我用简单的字符串替换PHP变量进行测试时,它们就可以工作了

有人能告诉我这是不是正确的语法吗


谢谢

将您的查询更改为此

$id=$order->id;
Db_DbHelper::query('insert into shop_order_notifications(order_id, message, created_at)
        values ('$id','$message','$emailPubDate')' );

将您的查询更改为此

$id=$order->id;
Db_DbHelper::query('insert into shop_order_notifications(order_id, message, created_at)
        values ('$id','$message','$emailPubDate')' );

我想你错过了这些引语

Db_DbHelper::query('insert into shop_order_notifications (order_id, message, created_at)
        values ("'.intval($order->id).'", "'.addslashes($message).'", "'.addslashes($emailPubDate).'")' );

我想你错过了这些引语

Db_DbHelper::query('insert into shop_order_notifications (order_id, message, created_at)
        values ("'.intval($order->id).'", "'.addslashes($message).'", "'.addslashes($emailPubDate).'")' );

首先,要确认SQL语法错误还是其他错误,请获取php错误日志

您可以测试它:

Db_DbHelper::query("insert into shop_order_notifications(order_id, message, created_at) values ({$order->id},'{$message}','{$emailPubDate}')" );

首先,要确认SQL语法错误还是其他错误,请获取php错误日志

您可以测试它:

Db_DbHelper::query("insert into shop_order_notifications(order_id, message, created_at) values ({$order->id},'{$message}','{$emailPubDate}')" );


您需要将字符串数据括在引号中。注释中的所有内容都很好,但是,出于舒适的原因,您也可以这样做:
Db\u DbHelper::query(“插入商店订单通知(订单id、消息、创建日期)值(“{$order->id}”、“{$message}”、“{$emailPubDate}”)看看准备好的语句,它们可以避免很多问题和麻烦。您需要将字符串数据括在引号中。注释中的所有内容都很好,但是,出于舒适的原因,您也可以这样做:
Db\u DbHelper::query(“insert into\u order\u notification(order\u id,message,created\u at)value({$order->id}“,”{$message}',“{$emailPubDate}')”看看准备好的语句,它们可以避免很多问题和头痛。谢谢大家的回答。是的,就像Gerald说的,它得到了语法错误(红色下划线),并且在页面中加载时返回一个错误。不管怎样,要解决这个问题吗?不需要尝试,它仍然无效。嗯,仍然是相同的错误。显然这不是因为->。回显查询并检查是否获得所有值。感谢各位的回答。是的,就像Gerald说的,它得到了语法错误(红色下划线),并且在页面中加载时返回一个错误。不管怎样,要解决这个问题吗?不需要尝试,它仍然无效。嗯,仍然是相同的错误。显然这不是因为->。回显查询并检查是否获取了所有值。addslashes可能是为了防止消息包含双引号?我不知道变量是否已经包含双引号。。我假设这不起作用,因为有引号。是的,这是对的,但是如果
$message
变量包含
我已经编辑了它,并进行了升级,希望您不介意。请不要在SQL查询中使用addslashes。谢谢,它消除了错误,但查询不起作用(该表未获取新行)。所有变量都包含没有引号的简单字符串。知道问题是什么吗?addslashes可能是为了防止消息包含双引号?我不知道变量是否已经有双引号。我假设这不起作用,因为有引号。是的,没错,但是如果
$message
variable包含一个
我已经对它进行了编辑,并进行了升级,希望您不介意。请不要在SQL查询中使用addslashes。谢谢,它消除了错误,但查询不起作用(表没有获得新行)。所有变量都包含没有引号的简单字符串。知道问题是什么吗?它在{$messageecho“insert into to shop_order_notifications(order_id,message,created_at)”值({$order->id},{$message},{$emailPubDate})的前面有红色下划线。打印时,它在{$messageecho“插入店铺订单通知(订单id、消息、创建日期)值({$order->id},{$message},{$emailPubDate}')”的前面,{$messageecho“打印??