2013-05-09 52 views
1

所以我更新我的MySQL数据库使用PHP。下面是UPDATE的结尾,如果我有一个字符串而不是echo $row[embedcode]");它工作正常,而且这个echo在页面上设置数据只是很好地检索正确的值,但在这个UPDATE中它不起作用。如何在mysql更新中包含php echo?

...WHERE `embedcode` = echo $row[embedcode]"); 

我试过使用“。”。围绕它并添加自己的PHP标签,但我不知道需要做什么。

+0

你为什么要在SQL语句中嵌入回声? – andrewsi 2013-05-09 12:59:53

回答

1
" ... WHERE `embedcode=` '" .$row[embedcode]. "';"); 
+0

这实际上是唯一一个可以工作的人,但是现在我每次加载页面时都会更新数据库,而不仅仅是单击按钮时。 我只是试图增加一个值1每当一个按钮被点击。我认为这可以通过执行以下操作来完成:'test',uv是更新查询。因为它在锚标签中,所以我认为它只会在点击时发生。 – dudledok 2013-05-09 18:04:42

+0

好吧,这是行不通的,因为无论你传递给'href'属性,它都会作为一个url的字符串处理,无论是相对的还是完整的url。所以如果你真的想使用'a'标签作为按钮,你应该在php:'$ uv = $ _ GET ['uv']'中做这样的事情,而html部分应该看起来像这样:'' 按钮' 但是这会导致页面每次点击按钮时都会重新加载,我想 - 没有看到整个代码 - JS会更好地使用... – ppseprus 2013-05-09 19:06:24

+0

嗯,即时通讯不知道如何你想它没有上下文,但如果你把MySQL的更新部分到一个函数,你只有在$ _GET ['uv']设置时触发它:'if(isset($ _ GET [' uv'])){.. UPDATE ..}'比这可能是一个解决方案。 POST多一点,然后我可以帮助更多.. – ppseprus 2013-05-09 19:26:17

6

只要使用此:

...WHERE `embedcode` = " . $row[embedcode]); 

没有必要echo

作为一个方面说明,您应该参数化或至少清理任何进入MySQL查询的字符串,以防止SQL注入和其他不好的事情。

0

WHERE embedcode = . $row[embedcode]);将设置该值。

在sql语句中不需要echo。回声用于显示从PHP到网页浏览器的东西。

0

不要使用回声,也许应该是:

...WHERE `embedcode=` . $row[embedcode]"); 

这并不是说,如果$row[embedcode]是你必须把周围的引号的字符串。

0

让我们说,例如...

("UPDATE `tblProfile` SET `profilename` = 'abc' WHERE `embedcode` = '".$row['embedcode']."'"); 
0

防止SQL注入,你可以,如果你使用的是PDO或MySQLi的传递值作为参数。

例如,

$stmt = $dbConnection->prepare('...WHERE `embedcode` = :embedcode'); 
$stmt->execute(array(':embedcode' => $row[embedcode])); 

详见this