我知道这是一个经常被问到的问题,但我以前遇到过这个问题。我写了很多写入数据库的sql语句,所以我不确定为什么会这样。我的代码说已经写了记录,但记录没有出现在phpmyadmin的数据库中。这是我的代码:
$hostname = "localhost";
$dbusername = "username";
$dbname = "database";
$dbpassword = "password";
mysql_connect($hostname, $dbusername, $dbpassword) OR DIE ("Unable to connect to database! Please try again later.");
mysql_select_db($dbname);
$sql = "INSERT INTO 'payment_profiles'(id, client_id) VALUES ( '','$profile_id')";
mysql_query($sql);
if(! $sql )
{
die('Could not enter data: ' . mysql_error());
}
else {
echo ("We inserted the id");
}
当脚本运行时它告诉我“我们插入了id”,所以我不确定问题是什么。也许有人之前见过这个?注意:profile_id变量在我的脚本中声明更高,它不在这里。
答案 0 :(得分:12)
这里有些不对劲。
mysql_*
函数,至少使用MySQLi,或者最好使用PDO。请参阅Why shouldn't I use mysql_* functions in PHP? 'payment_profiles'
- 如果您必须引用,请使用返回标记(`)$sql
- 它将始终返回true,因为$sql
是一个非空的字符串。您应该将查询结果分配给$result
,然后检查$result
是否为真(或处理错误)。答案 1 :(得分:0)
你应该改变“If”阻止条件,如果你想使用弃用的mysql_query,你必须测试mysql_query是否正常,而不是$ sql变量是否已被“定义”
$hostname = "localhost";
$dbusername = "username";
$dbname = "database";
$dbpassword = "password";
mysql_connect($hostname, $dbusername, $dbpassword) OR DIE ("Unable to connect to database! Please try again later.");
mysql_select_db($dbname);
$sql = "INSERT INTO 'payment_profiles'(id, client_id) VALUES ( '','$profile_id')";
$result = mysql_query($sql);
if(! $result )
{
die('Could not enter data: ' . mysql_error());
}
else
{
echo ("We inserted the id");
}
答案 2 :(得分:0)
$ sql是一个始终为true的字符串。
尝试:
$sql = "INSERT INTO 'payment_profiles'(id, client_id) VALUES ( '','$profile_id')";
$result = mysql_query($sql);
if(!$result) {
die('Could not enter data: ' . mysql_error());
} else {
echo ("We inserted the id");
}
答案 3 :(得分:0)
你正在检查!$ sql .. $ sql包含..它的查询字符串没有别的,这就是为什么其他部分在这里执行,因为它已初始化。将你的代码转换为
$result= mysql_query($sql);
if(! $result )
{
注意:使用mysqli_ * functions.mysql_ *已弃用
编辑1 语法为$result=mysqli_query($link,$sql);
。注意:如果您收到错误调用未定义函数 。然后你将需要编辑你的php.ini配置文件并删除; from; extension = php_mysqli.dll并将你的extension_dir设置为你的php folder.okay的ext子文件夹。但是我首先尝试使用runt代码