我知道这是一个常见问题,但我以前遇到过这个问题。我已经写了很多写入数据库的 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 变量在我的脚本中声明得更高,只是不在这里。
最佳答案
这里有几处错误。
- 无数据清理:参见 How can I prevent SQL injection in PHP?
- 您正在使用已弃用的
mysql_*
函数,至少使用 MySQLi,或者最好使用 PDO。参见 Why shouldn't I use mysql_* functions in PHP? - 您要引用表名
'payment_profiles'
- 如果必须引用,请使用反引号 (`) - 您没有正确测试查询。您正在测试
$sql
- 它将始终返回 true 因为$sql
是一个不为空的字符串。您应该将查询结果分配给$result
,然后检查$result
是否为真(或处理错误)。
关于php - SQL 语句不写入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17434272/