尝试在MySQL中创建函数以将小数等级转换为字母等级时,我遇到语法错误的麻烦.
可能是什么问题?
错误1064(42000):您的SQL语法有错误; 检查与mySQL服务器版本对应的手册,以便在'conv(gpa DOUBLE)RETURNS CHAR BEGIN
DECLARE grade CHAR 附近使用正确的语法;
在第1行选择gp'时的情况
这是我的代码:
delimiter $
CREATE FUNCTION conv(gpa DOUBLE)
RETURNS CHAR
BEGIN
DECLARE grade CHAR;
SELECT CASE WHEN gpa BETWEEN 3.5 AND 4.0 THEN 'A'
WHEN gpa BETWEEN 3.0 AND 3.4 THEN 'B'
WHEN gpa BETWEEN 2.5 AND 2.9 THEN 'C'
WHEN gpa BETWEEN 2.0 AND 2.4 THEN 'D'
ELSE 'F'
END INTO grade
RETURN grade;
END $
Run Code Online (Sandbox Code Playgroud) 对于我的生活,我似乎可以搞清楚
INSERT INTO category SET CategoryName = 'Hardware_1',
Category = 'HARDWARE', Status = '1', Order = '1'
You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax
to use near 'Order = '1'' at line 1
CREATE TABLE `category` (
`CategoryID` int(11) NOT NULL AUTO_INCREMENT,
`CategoryName` varchar(255) NOT NULL,
`Category` varchar(255) NOT NULL,
`Status` tinyint(4) NOT NULL,
`Order` int(11) NOT NULL,
PRIMARY KEY (`CategoryID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Run Code Online (Sandbox Code Playgroud) 我正在尝试第一次创建一个游标。我看了文档,我理解了这个概念,但是我什至无法声明它……
我正在使用:
即使复制粘贴在http://dev.mysql.com/doc/refman/5.1/en/cursors.html中找到的示例,
CREATE PROCEDURE curdemo()
BEGIN
DECLARE done INT DEFAULT 0;
DECLARE a CHAR(16);
DECLARE b,c INT;
DECLARE cur1 CURSOR FOR SELECT id,data FROM test.t1;
DECLARE cur2 CURSOR FOR SELECT i FROM test.t2;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
OPEN cur1;
OPEN cur2;
read_loop: LOOP
FETCH cur1 INTO a, b;
FETCH cur2 INTO c;
IF done THEN
LEAVE read_loop;
END IF;
IF b < c THEN
INSERT INTO test.t3 VALUES …Run Code Online (Sandbox Code Playgroud) 我试图让MySQL为我的表单提交工作.我尝试插入表格时遇到问题.
当我将信息放入我的表单并单击提交时(在此示例中,信息在一个字段中为"Idea",在另一个字段中为"Description")我得到此响应:
"您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以便在'desc附近使用正确的语法'VALUES('Idea','Description')'在第1行"
我正在从Web服务器运行.php文件来执行此脚本.
这是我目前的代码:
<?php
mysql_connect("localhost","root","") or die(mysql_error());
mysql_select_db("date_ideas") or die(mysql_error());
$title=$_POST['title'];
$title=mysql_real_escape_string($title);
$desc=$_POST['desc'];
$desc=mysql_real_escape_string($desc);
$submit="INSERT INTO ideas (title, desc) VALUES ('$title','$desc');";
mysql_query($submit) or die(mysql_error());
echo ("Idea submitted. Click <a href='Webroot/submit.php'>here</a> to go back and post another idea.");
?>
Run Code Online (Sandbox Code Playgroud)
如果你调用所使用的变量的回声它会成功传递信息,所以这不是问题.
这个查询:
UPDATE jos_content SET fulltext='\r\n<br /> \" some other text' WHERE id=3
Run Code Online (Sandbox Code Playgroud)
得到:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'fulltext='\r\n<br /> \" some other text' WHERE id=3' at line 1
任何人都知道为什么?谢谢你.
我有一个函数,我目前在PHP中使用它编写来自不同字段的邮件地址,但考虑到不同地区使用的不同格式.我试图将其复制为MySQL存储函数.我意识到在代码中而不是在数据库中执行此类操作通常会更快,但我们的Intranet可以让人们以只读方式输入原始MySQL SELECT命令,这样他们就可以构建高级搜索并保存查询.将使用此特定功能,以便用户可以将其高级搜索查询结果输出到标签布局.
当我尝试使用phpMyAdmin 3.4.9(最新稳定版)存储该函数时,我收到以下错误:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 51
Run Code Online (Sandbox Code Playgroud)
我还安装了最新的MySQL Workbench并得到了相同的错误,但它也突出显示了"END'附近的SQL语法错误",因此它不仅仅是phpMyAdmin中的一个错误(尽管它可能是phpMyAdmin和MySQL Workbench中的一个错误).
这是函数查询:
DELIMITER ;;
DROP FUNCTION IF EXISTS ADDRESS_BUILD;;
CREATE FUNCTION ADDRESS_BUILD(contact VARCHAR(50), company VARCHAR(100), add1 VARCHAR(255), add2 VARCHAR(255), add3 VARCHAR(255), town_city VARCHAR(50), county_state VARCHAR(50), postcode_zip VARCHAR(50), country VARCHAR(100), `separator` VARCHAR(10), type VARCHAR(10))
RETURNS TEXT
DETERMINISTIC
BEGIN
DECLARE address TEXT;
DECLARE line TEXT; …Run Code Online (Sandbox Code Playgroud) 我正在使用PHP构建一个站点,允许用户将大量数据添加到MYSQL数据库中的各个表中.这需要在我的数据库中插入,更新和删除大量表,有时在一个脚本中运行多个命令.
我很关心捕捉到现场发生的潜在错误(我已经过测试,测试和测试但仍需要备份计划).
我到处寻找一个解决方案,但找不到满足我需求的解决方案,所以想知道这里是否有人有任何他们使用的做法或建议他们可以给我.
我想要发生什么:
如果连接到我的数据库时出现错误(例如),我想显示一个页面或警告窗口,其中显示"抱歉我们遇到了问题"消息,并带有一个用于记录错误的按钮.当用户单击按钮时,我希望能够将mysql_error()记录到数据库中,其中包含失败的命令/功能和页面名称的描述以及我可以跟踪的时间/日期戳.
这是任何人以前做过的事情还是可以提供替代方案?或者是否有一个内置功能正是这样我错过了?
任何建议将不胜感激.
我正在使用mysql,我有一个表,他的名字是"概念关系",我想插入其中
for ($i = 0; $i < count($sources); $i++) {
$sourceID = $this->getConcpeptID($sources[$i]);
$desID = $this->getConcpeptID($distinations[$i]);
$query2 = "INSERT INTO concept-relation (relationID, firstConceptID, secondConceptID) VALUES (:rID, :sID, :dID)";
$sth = $this->db->prepare($query2);
$sth->execute(array(
':rID' => $relationID,
':sID' => $sourceID,
'dID' => $desID
));
}
Run Code Online (Sandbox Code Playgroud)
我收到此语法错误消息
INSERT INTO concept - relation(
relationID,
firstConceptID,
secondConceptID
)
VALUES ( 3, 3, 3 )
Run Code Online (Sandbox Code Playgroud)
我试图直接从mysql插入并得到错误似乎相同的错误
for ($i = 0; $i < count($sources); $i++) {
$sourceID = $this->getConcpeptID($sources[$i]);
$desID = $this->getConcpeptID($distinations[$i]);
$query2 = "INSERT INTO …Run Code Online (Sandbox Code Playgroud) 我正在尝试调试我的代码,但mysql_error()没有显示任何内容.我知道有些不对劲,因为我写的时候
or die("ERROR");
Run Code Online (Sandbox Code Playgroud)
它显示ERROR.所以问题必须是那一行代码.当我写作
or die(mysql_error());
Run Code Online (Sandbox Code Playgroud)
它显示空白.这是我认为有错误的行的代码:
while ($rows = mysql_fetch_array($sql6) or die(mysql_error())) {
Run Code Online (Sandbox Code Playgroud)
现在这里是完整的代码块:
$sql6 = mysql_query("SELECT * FROM replies WHERE thread_id = $thread_id");
$numRows = mysql_num_rows($sql6);
$replies = '';
if ($numRows < 1) {
$replies = "There are no replies yet, you can make the first!";
} else {
while ($rows = mysql_fetch_array($sql6) or die(mysql_error())) {
$reply_content = $rows['5'];
$reply_username = $rows['7'];
$reply_date = $rows['8'];
$reply_author_id = $rows['4'];
$sql9 = mysql_query("SELECT * FROM users WHERE id = '$reply_author_id'"); …Run Code Online (Sandbox Code Playgroud) 我很难用带有外键元素的MySQL(PDO)创建表,没有表创建的外键就可以了,但是却没有得到以下消息:
SQLSTATE [42000]:语法错误或访问冲突:1064 SQL语法有错误;
我曾尝试寻找解决方案并改编代码,但似乎总是遇到这种情况。有没有解决办法,或者我是个傻瓜?
<?php
$servername = "localhost";
$username = "root";
$password = NULL;
$dbname = "testapplciants";
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
//sql to create the activity registered table
$sql = "CREATE TABLE Activity_Register (
Activity_id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
participant_id INT(6) FOREIGN KEY (participant_id) REFERENCES participants,
entry_number INT(2),
recorded_result INT(6),
entry_date TIMESTAMP
)";
// use exec() because no results are returned
$conn->exec($sql);
echo "Table …Run Code Online (Sandbox Code Playgroud)