Php PDO语句未插入数据库

Php PDO语句未插入数据库,php,database,pdo,insert,statements,Php,Database,Pdo,Insert,Statements,你好,我有一个无法工作的代码。我已经用它调试了大约一个小时,似乎找不到任何错误,我不知道它是什么。也许有人能帮我 插入脚本: 我试图将数据添加到我的数据库中,但它无法添加我提供给它的数据 以下是我的连接脚本: 有人知道我做错了什么吗?除了在php中使用警报之外。 它并没有给我任何错误,我有一个数据库的实际属性。我需要帮助:我想你应该使用$link->exec$sql 让我们试着简化这个问题。看起来您没有返回数据库连接。为了让您更好地理解,我们可以从相同的脚本调用db,我们可以在它工作后将其移出,

你好,我有一个无法工作的代码。我已经用它调试了大约一个小时,似乎找不到任何错误,我不知道它是什么。也许有人能帮我

插入脚本:

我试图将数据添加到我的数据库中,但它无法添加我提供给它的数据

以下是我的连接脚本:

有人知道我做错了什么吗?除了在php中使用警报之外。
它并没有给我任何错误,我有一个数据库的实际属性。我需要帮助:

我想你应该使用$link->exec$sql

让我们试着简化这个问题。看起来您没有返回数据库连接。为了让您更好地理解,我们可以从相同的脚本调用db,我们可以在它工作后将其移出,因为我们都喜欢重构,不是吗

try {
  $dbhost = 'localhost';
  $dbuser = 'root';
  $dbpass = '';
  $link = new PDO("mysql:host=$dbhost;dbname=dbtesttest;",$dbuser,$dbpass);
//在try块中将属性设置为connection

 $link->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);


} catch (PDOException $e) {
  echo "Failed :" . $e->getMessage() . "\n";
}
那就换这一行

$link->query($sql)


上面的所有内容现在都应该放在try块中,插入应该可以工作,否则将返回更详细的错误。希望这会让你走起来,帮助你把你的头围绕着它。这是一本关于php/mysql CRUD操作的入门书。

您检查过查询是否正常工作了吗?首先想到的是在数字字段price->“john”中放入一个字符串,尝试使用准备好的语句,并在准备好后执行查询。这里有更多什么不起作用?您有一个if/then/else语句—执行哪一个代码分支?您为什么这么认为?提供的不仅仅是一个传递的注释,没有任何东西可以支持它。直接调用$link->query有什么不对?为什么你认为准备一份声明会有帮助?我不认为这是错误的,但对于OP来说,它应该帮助他了解正在发生的事情,并希望更好地理解操作。我相信当编写insert/update/delete语句时,它的可读性也比SELECT语句好,因为查询通常与SELECT关联。这详细地解释了区别。答案应该是回答问题,而不是排除故障或让事情读得更好。一旦你有了更多的代表,你就可以对问题进行评论,以寻求澄清或提供调试建议。
 $link->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);


} catch (PDOException $e) {
  echo "Failed :" . $e->getMessage() . "\n";
}
$link->query($sql)
$stmt = $link->prepare($sql);
$stmt->execute();