SQL表未在PHP中更新

SQL表未在PHP中更新,php,mysql,sql-update,Php,Mysql,Sql Update,我试图在PHP中创建一个更新函数,但是记录似乎没有随着更新而改变。我创建了一个JSON对象来保存传递给这个文件的值,根据我运行的Firebug Lite控制台,这些值输出得很好,所以sql端可能有问题。有人能发现问题吗?我非常感谢你的帮助 <?php $var1 = $_REQUEST['action']; // We dont need action for this tutorial, but in a complex code you need a way to determine

我试图在PHP中创建一个更新函数,但是记录似乎没有随着更新而改变。我创建了一个JSON对象来保存传递给这个文件的值,根据我运行的Firebug Lite控制台,这些值输出得很好,所以sql端可能有问题。有人能发现问题吗?我非常感谢你的帮助

<?php

$var1 = $_REQUEST['action']; // We dont need action for this tutorial, but in a complex code you need a way to determine ajax action nature
$jsonObject = json_decode($_REQUEST['outputJSON']); // Decode JSON object into readable PHP object

$name = $jsonObject->{'name'}; // Get name from object
$desc = $jsonObject->{'desc'}; // Get desc from object
$did = $jsonObject->{'did'};// Get id object


mysql_connect("localhost","root","");  // Conect to mysql, first parameter is location, second is mysql username and a third one is a mysql password
@mysql_select_db("findadeal") or die( "Unable to select database"); // Connect to database called test


$query = "UPDATE deal SET dname = {'$name'}, desc={'$desc'} WHERE dealid = {'$did'}";
$add = mysql_query($query);
$num = mysql_num_rows($add);

if($num != 0) {

echo "true";

} else {

echo "false";

} 

?>
您需要像
desc
一样使用反勾号进行转义

UPDATE deal 
SET dname = {'$name'}, `desc`= {'$desc'} ....
                       ^----^--------------------------here
您需要像
desc
那样使用反勾号进行转义

UPDATE deal 
SET dname = {'$name'}, `desc`= {'$desc'} ....
                       ^----^--------------------------here

你需要使用
mysql\u impact\u rows()
更新后不
mysql\u num\u rows
你需要使用
mysql\u impact\u rows()
更新后不
mysql\u num\u rows
我相信你误用了大括号。单引号应位于其外部:

"UPDATE deal SET dname = {'$name'}, desc={'$desc'} WHERE dealid = {'$did'}"
变成

"UPDATE deal SET dname = '{$name}', desc='{$desc}' WHERE dealid = '{$did}'"

另一方面,使用任何mysql_*函数在安全方面都不是很好。我建议您研究一下php或其扩展。

我相信您误用了大括号。单引号应位于其外部:

"UPDATE deal SET dname = {'$name'}, desc={'$desc'} WHERE dealid = {'$did'}"
变成

"UPDATE deal SET dname = '{$name}', desc='{$desc}' WHERE dealid = '{$did}'"

另一方面,使用任何mysql_*函数在安全方面都不是很好。我建议您研究php或扩展。

更好的是,在做任何其他事情之前,您需要检查错误。我对编码一无所知,甚至不知道保留字在哪里,但感谢您提醒我:)我现在查看您的链接。不幸的是,这不是在解决我的问题之后,但是=/更好的是,你需要在做任何其他事情之前检查错误。我对编码一无所知,甚至不知道保留字在哪里,但感谢你提醒我:)我现在查看你的链接。不幸的是,这并不是在解决我的问题之后,=/注意,
{'$name'}
{$name}
之间有区别。可能是
中的
条件不正确。请注意
{'$name'}
{$name}
之间存在差异。也许你的
条件不正确。我们有赢家了!非常感谢!谁知道会是这么小的东西。我知道,它以前引起过我的注意。我有非常基本的SQL经验,所以我在开始教学时就一直这样做,但一旦我了解了PHP方面的内容并传递了变量,我计划深入了解mysqi函数!非常感谢你抽出时间,凯尔@用户2025934不是问题。我很高兴我能帮忙。那些花括号看起来总是让人困惑。我们赢了!非常感谢!谁知道会是这么小的东西。我知道,它以前引起过我的注意。我有非常基本的SQL经验,所以我在开始教学时就一直这样做,但一旦我了解了PHP方面的内容并传递了变量,我计划深入了解mysqi函数!非常感谢你抽出时间,凯尔@用户2025934不是问题。我很高兴我能帮忙。那些花括号看起来总是让人困惑。