gpt4 book ai didi

php - 向MySql表插入数据奇怪的异常

转载 作者:行者123 更新时间:2023-11-29 06:21:10 25 4
gpt4 key购买 nike

我正在使用此代码在 MySql 表中插入一些值:

<?php
mysql_connect("localhost","root","root");
mysql_select_db("bib");

$id = "12";
$titlu = "Joe";

$query = "INSERT INTO carte SET id='$id', titlu='$titlu'";
$result = mysql_query($query);

// Display an appropriate message
if ($result)
echo "<p>Product successfully inserted!</p>";
else
echo "<p>There was a problem inserting the Book!</p>";

mysql_close();
?>

在浏览器中运行后,出现以下错误:

“Apache HTTP Server 遇到问题,需要关闭。对于给您带来的不便,我们深表歉意。”

看来是 mysql_select_db("bib") 语句导致的。数据库已创建,表也已创建...

我在 windows xp sp 2 上运行 php 5.3 和 mysql 5.1。

欢迎任何想法......

谢谢...

最佳答案

任何 mysql_* 函数都可能因各种原因而失败。您必须检查返回值,如果函数指示错误(通常通过返回 FALSE),您的脚本必须做出适当的 react 。
mysql_error($link) 和 mysql_errno($link) 可以为您提供有关原因的更详细信息。但您不想向任意用户显示所有详细信息,请参阅 CWE-209: Information Exposure Through an Error Message .

如果您不将 mysql_connect() 返回的连接资源传递给后续的 mysql_* 函数调用,则 php 会假定最后一次成功建立的连接。你不应该依赖它;最好将链接资源传递给函数。 a) 如果每页有多个连接,则无论如何都必须通过它。 b) 如果没有有效的数据库连接,php-mysql 模块会尝试建立默认连接,这通常不是您想要的;它只会花费更多的时间来再次失败。

<?php
define('DEBUGOUTPUT', 1);

$mysql = mysql_connect("localhost","root","root");
if ( !$mysql ) {
foo('query failed', mysql_error());
}

$rc = mysql_select_db("bib", $mysql);
if ( !$rc) {
foo('select db', mysql_error($mysql));
}

$id = "12";
$titlu = "Joe";

$query = "INSERT INTO carte SET id='$id', titlu='$titlu'";
$result = mysql_query($query, $mysql);

// Display an appropriate message
if ($result) {
echo "<p>Product successfully inserted!</p>";
}
else {
foo("There was a problem inserting the Book!", mysql_error($mysql), false);
}

mysql_close($mysql);

function foo($description, $detail, $die=false) {
echo '<pre>', htmlspecialchars($description), "</pre>\n";
if ( defined('DEBUGOUTPUT') && DEBUGOUTPUT ) {
echo '<pre>', htmlspecialchars($detail), "</pre>\n";
}
if ( $die ) {
die;
}
}

关于php - 向MySql表插入数据奇怪的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3546053/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com